큰 프로젝트에서 작업하고 있지만 문자열 조작으로 문제가 있습니다. 내 어셈블리 파일에는 연산 보조 프로세서 연산 ("FINIT"으로 보조 프로세서가 시작됨)이 포함되어 있지만 간섭을 일으키지 않아야한다고 생각하지 않습니다. 나는 일시적으로 저장하는 레지스터를 사용하려고어셈블리에서 문자열 조작 x86 (mov 및 화면에 인쇄)
$s db 50 dup (?), '$'
_cte_14 db "hello world", '$', 39 dup (?)
나는 "$의" 변수에 변수 "_cte_14"에 저장된 값을 지정해야합니다 는 기본적으로, 길이 50 바이트 각 일부 문자열이 값은 다음과 같습니다 :
mov cx, _cte_14
mov $s, cx
그러나 "피연산자 유형이 일치하지 않습니다"라는 오류가 발생합니다. 내가 도끼를 알고 있기 때문에
는, BX는, CX는, DX는 내가 첫 번째 문자열 문자의 메모리 주소로 작동 할 필요가 어쩌면 생각, 내가 노력 만이 16 개 비트를 개최 등록 :
mov bx, offset _cte_14
mov $s, bx
하지만, 같은 오류가 나타납니다.
저는 TASM을 사용하여 x86 프로세서 용으로 컴파일하고 있습니다. 이것을 성취하는 올바른 방법은 무엇입니까?
미리 감사드립니다.
루프에서 문자를 복사 할
당신이에서 문자를 복사해야 루프 또는 string move ('movsb') 명령을 사용합니다. – Jester