AH
, AL
, BH
및 BL
레지스터의 값을 인쇄하는 절차를 만들고 싶습니다. 나는이있다 :어셈블러에서 AH, AL, BH 및 BL 레지스터의 값을 인쇄합니까?
prntABHL:
PUSH BL
PUSH BH
PUSH AL
PUSH AH
PUSH fourNums ! defined in data as "%d, %d, %d, %d\n"
PUSH _PRINTF
SYS
ADD SP, 12 ! reset stack
RET
이것은 PUSH
지침 4 개의 레지스터 오류가 발생합니다. PUSH
은 16 비트 값을 예상하고 AH
및 AL
은 8 비트 값이기 때문에 가정합니다. 그렇지 않은 16 비트 긴 경우
어떻게 함수에 인수로 AH
, AL
, BH
및 BL
레지스터의 값을 지정할 수 있습니다? 이 문제를 해결하기위한 합리적으로 쉬운 방법이 있습니까?
'MOV CL, BL'을하는 행과 CL에 무언가를 이동시키는 행에 오류 메시지 '등록 오류'가 표시됩니다. 무슨 일이 일어날 지 생각해? 그들은 길이가 일치합니다. –
어떤 어셈블러를 사용하고 있습니까? – nrz
8088 어셈블러를 사용하고 있습니다. –