我不明白我做错了什么。我需要二进制计算器,其输入格式类似于“00000001b+00000010b ...输出也需要为二进制...运算符可以是+、-、*、/。
我想读取第一个数字并将其转换为十进制......我的代码是这样的
%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))时,程序运行良好,但当输入以零开始时,它不能正常工作......
我的问题是我做错了什么或者我怎样才能做得更好?
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