Я не могу получить следующий код для запуска. Он компилируется, но просто дает пустой результат. Im пытается взять значение HEX_OUT, удалить конечный ноль, а затем и со значением регистра dx, так что значение HEX_OUT теперь является значением dx. Любая помощь приветствуется.Простая функция сборки не работает
Спасибо,
Ash
; prints the value of DX as hex.
print_hex:
pusha
mov ax, HEX_OUT ; ax = 0x00000
shr ax, 1 ; remove trailing 0
and ax, dx ; and registers and store in ax
; TODO :manipulate chars at HEX_OUT to reflect DX
mov bx, ax ; print the string pointed to
call print_string ; by BX
popa
ret
; global variables
HEX_OUT : db '0x0000',0
Какие сообщения об ошибках вы получаете? Какой ассемблер вы используете? Где указано 'print_string'? – lurker
Строка печати определяется в другом файле .asm, оба являются частью файла «master». Все это компилируется без ошибок, используя nasm, но когда вы запускаете его, его просто давая пустой вывод – user3249855
, также, если я прокомментирую строку shr и строку и он отображает 0x0000 .... так что это должно быть чем-то связано с этими две строки – user3249855