鱼C论坛

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

汇编学习中的小问题

[复制链接]
发表于 2012-10-27 10:39:32 | 显示全部楼层 |阅读模式

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

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

x
mov al,[0]   ;al=0
读取10000h单元的内容,程序如下:
mov  bx,1000h
mov ds,bx
mov al,[0];这里表示偏移地址为0的内容
这两个地方我就有疑惑了,谢谢帮忙解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-10-27 11:16:28 | 显示全部楼层
mov  bx,1000h    ;BX;=1000H
mov ds,bx          ;DS:=1000H
mov al,[0];        ;AL;= DS:[0] 就是1000:0段地址*16加偏移就是10000h{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-27 16:07:11 | 显示全部楼层
如果要读取内存单元的内容,程序是这样的啊:
mov ax,1000h
mov ds, ax
mov  bx,0
[color=Red]mov al,[bx];或者mov al,ds:0
这个跟mov al,[0]的区别是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-10-27 22:36:21 | 显示全部楼层
没有mov al,[bx]这种表达方式吧,而且BX放到AL是放不进去的,只能保存低8位
另外mov al,ds:0和mov al,[0]效果是一样的,对内存里的数据进行操作的时候那个数字一定要加上中括号“[]”,否则就是单纯的把数据存放到寄存器中,而不是将内存中的数据转移到寄存器中了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-10-28 11:18:17 | 显示全部楼层

mov al,[bx];或者mov al,ds:0
这个跟mov al,[0]的区别是什么
===========================
BX寄存器的值是0,在这里 mov al,[bx]  等于 mov al,[0],结果一样。
再就是  mov sl,ds:0 这种格式是错误的!

补充内容 (2012-10-28 11:19):
打错字了,是mov al,ds:0   把a打成s了。。。sorry!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 12:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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