assembly - 如何从 eax 移动到较低的寄存器,如 ax 和 bx
问题描述
我的代码是否以这种方式工作,因为我担心错误地移动到较低的寄存器。(错误是:错误 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
解决方案
推荐阅读
- python-3.x - 使用重复值在索引上重新索引数据帧
- python - 复制粘贴不适用于 spyder 中的绘图
- swift - Swift - 如何从 HealthKit 类返回值
- c# - C# 中 .NET 远程处理中实例的使用
- linux - MongoDB 操作管理器“java.lang.OutOfMemoryError:无法创建本机线程”
- paypal - PayPal Checkout 前端和后端通信安全
- flutter - 共享首选项字符串列表返回 null
- python - 如何在 Python 中将某个 RGB 值分配给“最近”的一些其他 RGB 值
- r - 如何为多个变量创建堆积条形图
- javascript - 在 JavaScript 中使用原型添加函数