Я не вижу, что я делаю неправильно. Мне нужен двоичный калькулятор, формат ввода которого «что-то вроде« 00000001b + 00000010b ... выход должен быть в двоичном тоже ... оператор может быть +, -, *, /.сборка чтение двоичное число до десятичного числа 8086 (NASM)
Я хочу читать первое число и преобразовать его в десятичную ... мой код что-то вроде этого
%include "asm_io.inc"
segment .text
global _asm_main
_asm_main:
enter 0,0
pusha
call read_int
cmp al,'b'
je vypis
vypis:
call print_int
koniec:
popa ; terminate program
mov EAX, 0
leave
ret
программа работает нормально, когда вход запуска с номером один, например (10101010b), но когда вход начать с нуля это DonT работайте правильно ...
мой вопрос, что я делаю неправильно или как я могу сделать это лучше?
print_int и read_int являются функциями, которые уже даны нам, они работают на 100% ... другие функции, которые я могу использовать это read_char, print_char и print_string ...
read_int:
enter 4,0
pusha
pushf
lea eax, [ebp-4]
push eax
push dword int_format
call _scanf
pop ecx
pop ecx
popf
popa
mov eax, [ebp-4]
leave
ret
print_int:
enter 0,0
pusha
pushf
push eax
push dword int_format
call _printf
pop ecx
pop ecx
popf
popa
leave
ret
вы помогли много ... спасибо очень много: P –