숫자가 dl에 저장되어 있으며이 숫자가 최대 3 자리 숫자로 작동해야합니까? 다음은 숫자 0-9의 작동 코드입니다.DOS 어셈블리 간단한 수학
WriteNumber:
;; print out number in dl
push ax
push dx
add dl,"0"
mov ah,02h ; printing one char
int 21h
pop dx
pop ax
ret
예를 들어 2 자리 숫자입니다. 나는 dl/10을 가질 수 있었다. 그런 다음 결과와 나머지를 다른 문자로 인쇄하십시오. 하지만 숫자가 DIV의 AX 레지스터에 있어야하기 때문에 오류가 발생했습니다.
나는이 할 필요가:
mov 인 도끼를, DL
그러나 그것은 작동하지 않습니다?
문자를 읽기위한 int21가 8 비트 레지스터에두고, 그리고 DIV는 16 비트있을 때 나는 그것을 할 수 있습니까? – Algific
레지스터는 실제로 32 비트이지만 실제로 ax, al, ah (전체 eax와 반대)를 사용하여 레지스터를 참조 할 수 있습니다. 그러므로 도끼 레지스터에 8 비트 값을 채우면 괜찮을 것입니다. – mrduclaw
아. 고맙습니다. – Algific