汇编问题阿,求解!感激不尽阿~~
我现在在看王爽老师的汇编语言,我在第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] 就行了? 展开
设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] 就行了? 展开
2个回答
展开全部
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位的。段基址+偏移量,结果就是物理地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询