destiny 发表于 2012-7-18 10:58:14

第五章 [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,很明显是把一个字传送过去了,所以我就疑惑在这里了,而不知道我这样理解的对不对,还请老师和各大神牛说一下自己的见解。

敉沧 发表于 2012-7-18 10:58:15

1.cx的值应该为3
2.先将值算出来再放入dx 和 先将值送入dx再计算。没有区别。只要最后的结果正确。

3.如果0ffff:0007处的值为0。那么就可以
mov ax,

如果不为0。就需要mov ah,0了。

Potato丶 发表于 2012-7-18 13:51:04

本帖最后由 Potato丶 于 2012-7-18 13:52 编辑

{:5_107:}ffff:0007的内容显然不为0。。用mov ax,替换那两步是错的- -
甲鱼有这样写过吗?

敉沧 发表于 2012-7-18 13:58:09

Potato丶 发表于 2012-7-18 13:51
ffff:0007的内容显然不为0。。用mov ax,替换那两步是错的- -
甲鱼有这样写过吗?

其实我也疑惑,甲鱼哥有这样写过么?

LLCK910 发表于 2012-7-18 14:32:15

{:5_99:} 看来我的知识 还要加强额

Ubuntu 发表于 2012-7-19 11:46:13

真假?我没注意到甲鱼哥有这么一说啊,我觉得这样替换不对,明显传送的是一个字么

Ubuntu 发表于 2012-7-19 11:50:18

哥们,说实话,你得注意一下自己的表达,错字多,而且逻辑很混乱,我瞅了半天才看明白你要说啥。提问问题最忌讳长篇大论,逻辑清晰也是程序员必备的素质哦~~
页: [1]
查看完整版本: 第五章 [BX]和loop指令03 练习题目的疑惑