鱼C论坛

 找回密码
 立即注册
查看: 1857|回复: 1

mov和push指令的疑惑

[复制链接]
发表于 2012-7-25 10:32:26 | 显示全部楼层 |阅读模式
1鱼币
mov ax ,[0] 和 mov al ,[0]
这两个指令有什么不同,AX是16位寄存器,那么在传送ds:0的数据进ax时需要不需要往下拉一个高位字节,
相同的 push ax ,[0] 和 push al ,[0] 这两个是不是跟mov相同的道理。今天听了汇编第26课时我一下就糊涂了请大牛解惑。

最佳答案

查看完整内容

mov ax,[0] 是把段地址为ds,偏移地址为[0]的 一个字(两个字节)移动到ax中,此时的ax有16位,所以要往下拉一个高位,而mov al,[0]只是把内存中的内容复制后,占据ax的低八位。 push 和pop 指令 只能是push 寄存器 没有 这种格式, 要想实现 只能 先mov ax,[0] 再 push ax.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-25 10:32:27 | 显示全部楼层
本帖最后由 He2toN 于 2012-7-25 11:50 编辑

mov ax,[0] 是把段地址为ds,偏移地址为[0]的 一个字(两个字节)移动到ax中,此时的ax有16位,所以要往下拉一个高位,而mov al,[0]只是把内存中的内容复制后,占据ax的低八位。
push 和pop 指令 只能是push 寄存器  没有 这种格式, 要想实现 只能 先mov ax,[0] 再  push ax.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-19 23:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表