汇编问题阿,求解!感激不尽阿~~

我现在在看王爽老师的汇编语言,我在第103页中看到这么一句话:设ffff:0006单元中的数据是XXH,若要ax中的值和ffff:0006单元中的相等,ax中的数据应为0... 我现在在看王爽老师的汇编语言,我在第103页中看到这么一句话:
设ffff:0006单元中的数据是XXH,若要ax中的值和ffff:0006单元中的相等,ax中的数据应为00xxH。所以,若实现ffff:0006单元向ax赋值,应该令ah中的值为0,al的值为ffff6H,代码如下:
mov ax,0fffffH
mov ds,ax
mov bx,6
mov al,[bx]
mov ah,0
我有疑问啊,为什么不是
mov ax,0fffffH
mov ds,ax
mov bx,6
mov ax,[bx] 这样子ax里不是放着ffff6了吗?为什么是al放ffff6,然后ah放0,求解!
“若实现ffff:0006单元向ax赋值,应该令ah中的值为0,al的值为ffff6H,” 这句我不懂阿,不是直接mov ax,[6] 就行了?
展开
 我来答
啊荣聚1
2011-06-14
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
因为单元中的数据时一个字节啊,若用你的方法,就是把FFFF:0006H地址后的两个字节赋值给AX,而指明为XXH,所以大小为00XXH,而你那样的话FFFF:0007H单元内容不确定,所以不满足
追问
ffff:0006单元中的数据是XXH的意思是说ffff6H中放着XXH,然后ffff7H中放着什么是未知的,然后如果直接 mov ax,[6] 这样一来是把XXH放在al中,ah放着ffff7H中的内容,是未知的,不满足要求,是这个意思吗?
追答
对啊
kovhnzbzn
2011-06-15 · TA获得超过306个赞
知道答主
回答量:614
采纳率:0%
帮助的人:302万
展开全部

mov [0520h],ax源操作数就在寄存器AX中,而目的操作数物理地址是内存0520h和0521h单元,因为AX是16位寄存器,而在汇编中带[]的代表是寄存器操作数,占一个字节,因此需要两个相邻的存储单元,将ah中的数放进0521h存储单元中,al中的数放0520h单元中,即所谓的高对高,低对低。
mov byte ptr[0520],05h 该指令中源操作数就是操作数本身,目标操作数地址是内存的第0520h号存储单元。
mov word ptr[bx+si],es 该指令是将段寄存器ES中的内容放进[bx+si]所指示的内存单元极其下一个与之相邻的单元。ES段寄存器也是16位的,需要两个存储单元。目标物理地址是20700h,20701h.bx+si结果是0700h,这时一个偏移地址。段基址是DS,在算物理地址时需要在DS最后添一个0,因为DS是16位的,而地址是20位的。段基址+偏移量,结果就是物理地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式