虫虫-中中(无忧) 发表于 2012-9-27 19:10:06

蛋疼的问题,多谢回答.将 al寄存器中的数据送入到10000H内存单元中

书上内容:
mov bx, 1000H
mov ds,bx
mov , al
书上是先通过bx寄存器中转,然后把段地址1000H送入到ds段寄存器中 最后将al寄存器中的数据传送到段地址为1000H 偏移地址为0的内存单元里

如果直接传送
mov ,al

这样可以不可以?



还有一点就是汇编指令中所有的数字 是不是都是默认为16进制数?为什么书上老是在后面加个H?就我知道 debug里加H会报错 汇编编译器还没接触过 不知道用不用加H指明是16进制?

s0512 发表于 2012-9-27 19:10:07

mov ,al
=============
这样是不行滴!上面格式应隐含了一个段地址:实际 段地址:[偏移地址]..偏移地址最大为0FFFFH...{:1_1:}

虫虫-中中(无忧) 发表于 2012-9-27 19:11:55

第一次来到小乌龟的论坛上提问 各位大虾多多关照{:5_92:}

顺带给我的汇编启蒙老师问个好{:7_149:}

无星之夜 发表于 2012-9-27 20:06:50

不行。。。中括号里面只能带便偏移地址。
加h说明是16进制的表示方法,debug里面默认是10进制的表示方法。
先说一下。。。书上的这个例子也只能在debug上行得通,一般是不能在【】加立即数的。。。看到后面就知道了

大豁牙 发表于 2012-9-28 21:29:48

首地址已经默认在ds中了,【10000】就是1000:10000,debug一下就好了

虫虫-中中(无忧) 发表于 2012-9-29 02:03:39

我明白了 中括号里面表示的只能是一个偏移地址,而段地址已经默认在ds里面了...

所以我那么表示是不对的~而且偏移地址 只能是16位的 我那个却成了20位~

不知道选谁的答案好 可不可以每个人都给分:lol?

核桃哥 发表于 2012-9-29 12:19:53

不可以的,因为[...]是表示偏移地址,并不是段地址

好虾人 发表于 2012-10-7 12:34:46

上面那位朋友,debug中默认的是十六进制不是十进制,编译器默认的才是十进制,因为debug中已经默认为十六进制了才不需要再加H的
页: [1]
查看完整版本: 蛋疼的问题,多谢回答.将 al寄存器中的数据送入到10000H内存单元中