第五章 [BX]和loop指令03 练习题目的疑惑
本帖最后由 destiny 于 2012-7-19 12:57 编辑问题:计算ffff:0006单元中的数乘以3,结果存储在dx中。
小甲鱼老师的代码
assume cs:code
code segment
mov ax, 0ffffH
mov ds, ax
mov bx, 6
mov al,
mov ah, 0
mov dx, 0
mov cx, 3
s: add dx, ax
loop s
mov ax, 4c00H
int 21H
code ends
end
小甲鱼老实说这两步可以直接改成mov ax,
mov al,
mov ah, 0
现在我的疑惑就是在以前的课程中我们小甲鱼老师说: 中的值是要看赋予前面寄存器是ax 还是al来决定的,因为一个是16位寄存器,而另一个是8位的寄存器,ax的话那么就要把下面的一个值连带上,al的话就是本身的值,那么这道题是要ffff:6处乘以3再放到dx中,人家没说ffff:6处的值赋予dx以后在乘以3,如果是后者的话那么就是我的错 ,如果是前者的话,我认为小甲鱼老师做的那个实验是错的。ffff:6处的值很明显是一个8位的数据也就是一个字节,mov ax,很明显是把一个字传送过去了,所以我就疑惑在这里了,而不知道我这样理解的对不对,还请老师和各大神牛说一下自己的见解。
1.cx的值应该为3
2.先将值算出来再放入dx 和 先将值送入dx再计算。没有区别。只要最后的结果正确。
3.如果0ffff:0007处的值为0。那么就可以
mov ax,
如果不为0。就需要mov ah,0了。 本帖最后由 Potato丶 于 2012-7-18 13:52 编辑
{:5_107:}ffff:0007的内容显然不为0。。用mov ax,替换那两步是错的- -
甲鱼有这样写过吗? Potato丶 发表于 2012-7-18 13:51
ffff:0007的内容显然不为0。。用mov ax,替换那两步是错的- -
甲鱼有这样写过吗?
其实我也疑惑,甲鱼哥有这样写过么? {:5_99:} 看来我的知识 还要加强额 真假?我没注意到甲鱼哥有这么一说啊,我觉得这样替换不对,明显传送的是一个字么 哥们,说实话,你得注意一下自己的表达,错字多,而且逻辑很混乱,我瞅了半天才看明白你要说啥。提问问题最忌讳长篇大论,逻辑清晰也是程序员必备的素质哦~~
页:
[1]