var ax = 1
if(ax == 0) then
var bx = 2
else
var bx = 1
end if
Napisałem jako pseudokod.
Jeśli, gdzieś się pomyliłem, to proszę mnie poprawić.
Edit... A jednak się pomyliłem, komentarze poniżej, dziękuję @Piotr Batko za review. Kod, który jest powyżej odzwierciedla ten poniżej.
[bits 32]
global _main
extern _printf
section .data
fmt1: db "bx <-- %hu", 0
section .text
_main:
mov ax, 1 ; was 1
cmp ax, 0
je L7
mov bx, 1
jmp L8
L7:
mov bx, 2
L8:
push bx
push fmt1
call _printf
add esp, 6
ret
Natomiast odpowiedź na kod autora, jest taka <tutaj_link_do_komentarza>.
Intel manual - 176 strona teraz na tym pdf, a jest to rozdział 7.3.2.4.
Opis CMP dokładny masz na 728. stronie. Vol. 2A.
Pseudokod z ich manuala, jest taki.
temp <-- SRC1 - SignExtend(SRC2);
ModifyStatusFlags; (* Modify status flags in the same manner as the SUB instruction*)
Co to jest temp, SRC1, etc. doczytasz w manualu Intela i innych dokumentach traktującym o zagadnieniach.