私は何が間違っているのかわかりません。入力形式が「00000001b + 00000010b ...出力もバイナリである必要がある...演算子は+、-、*、/.
最初の数字を読み取って10進数に変換したい...私のコードは次のようなものです
%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)のように入力が1で始まる場合、プログラムは正常に動作しますが、入力が0で始まる場合は正しく動作しません...
私の質問は何を間違っているのですか、どうすればもっとうまくできますか?
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