Мне нужно напечатать число больше 9 в сборке, и мне удалось написать этот код, но для меня он печатает «_ _» в качестве ответа. Что случилось?
xor ax,ax
mov al,bl
mov bl,0Ah
div bl
mov bl,ah
add bl,48
mov ah,2h
mov dh,offset bl
int 21h
mov bl,al
add bl,48
mov ah,2h
mov dh,offset bl
int 21h
mov dh,offset bl
? - person David Wohlferd   schedule 27.09.2017bl
- это 8-битный регистр, у него нет адреса памяти, поэтому у него не может быть никакого смещения. Итак, вы неправильно поняли, что делает директиваoffset
. Меня даже удивляет, почему TASM скомпилировал его без ошибок.mov dh,bl
скопирует значение изbl
вdh
. ... Проверьте ссылку от Дэвида для описанияint 21h
службыs (!) и правильных аргументов, сah=2
содержаниеdh
не важно. - person Ped7g   schedule 27.09.2017