鱼C论坛

 找回密码
 立即注册
查看: 4192|回复: 4

汇编指令

[复制链接]
发表于 2020-12-26 10:27:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
mov ax, 18
mov ah , 78
add ax,8
mov ax,bx
add ax,bx

这个AH不是AX的高位吗,虽然高低位可以单独使用,那能在一个程序里面直接用吗? 要是给AX赋了一个很大的值,把高位的也占用了,是不是就不能再单独给高位赋值了?
还有第四行,把BX中的值放进AX里面,是不是就把AX的值覆盖了呢?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-26 11:01:33 | 显示全部楼层
我也刚学,我觉得是可以给高位单独赋值,但赋值后高位里面的数值会被覆盖,第四行把bx的值放进ax,ax中的值会被覆盖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-26 11:02:45 | 显示全部楼层
秃头小萌新 发表于 2020-12-26 11:01
我也刚学,我觉得是可以给高位单独赋值,但赋值后高位里面的数值会被覆盖,第四行把bx的值放进ax,ax中的值 ...

但是答案就是,第四行没有被覆盖hhh有点晕了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-26 12:57:49 | 显示全部楼层
本帖最后由 jackz007 于 2020-12-26 13:38 编辑

       ah 和 al 是 ax 的组成部分,ah 和 al 共同构成了寄存器 ax,ax 是16 位寄存器,ah 和 al 都是 8 位,其中,ah 是 ax 高位,al 是 ax 的低位,如果 ax = 1234h,那么,ah = 12h ,al = 34h,所以,ah、al 就是 ax,修改 ax 就是修改 ah、al,修改 ah、al 就是修改 ax,同样还是 ax = 1234h,如果这时,执行 mov ah , 56h,那么 ax 将变为 5634h。
       只要给 ax 赋值,ax 以前的内容就会被完全覆盖 ,不存在任何先决条件,"要是给AX赋了一个很大的值,把高位的也占用了" 是完全错误的观念,即使赋的新值是 0,也会覆盖到 ah 的。
            
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2020-12-28 09:54:23 | 显示全部楼层
jackz007 发表于 2020-12-26 12:57
ah 和 al 是 ax 的组成部分,ah 和 al 共同构成了寄存器 ax,ax 是16 位寄存器,ah 和 al 都是 8 位 ...

强,理解了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 12:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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