как перейти от eax к нижнему регистру, например ax и bx - PullRequest
0 голосов
/ 08 мая 2020

работает ли мой код таким образом, потому что я беспокоился о том, чтобы с ошибкой перейти в нижний регистр. (Ошибка: Ошибка 2, ошибка A2022: операнды команд должны быть одного размера D: \ assembly project \ assemblyproject \ assemblyproject \ assembly1 .asm 25 1 проект сборки)

.data 
message1 BYTE "enter the 1st number",0dh,0ah,0
message2 BYTE "enter the 2nd number ",0dh,0ah,0
message3 BYTE "the GCD is: ",0dh,0ah,0
nb1 dword ?
nb2 dword ?
.code
main proc

mov edx, offset message1        
call writeString
call ReadDec
mov nb1,eax
mov edx,offset message2
call ReadDec
mov nb2,eax
mov ax, nb1
mov bx, nb2

calculate_GCD:
    cmp ax,bx
    je display_gcd
    jb swap_nb
    div bx
    cmp dx,0
    je display_gcd
    mov ax,bx
    mov bx,dx
    jmp calculate_GCD

swap_nb:
    XCHG ax,bx
    jmp calculate_GCD


display_gcd:
    movzx eax, dx
    mov edx, offset message3
    call writestring
    call writedec

invoke ExitProcess,0
main endp
end main
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...