kyjuvs 发表于 2013-1-19 12:32:31

关于小甲鱼在第五章(bx和loop)第四个视频里的一些问题

他在2:42左右讲到debug 中 mov ax,是将ds:0处数据送入al中,ah=0,看到这里我就觉得有错了,因为之前debug中mov ax,是把ds:0送入al中,ds:1送入ah中,自己上机试了下发现我想的是对的。
比如说在20000处是34h,20001处是12h,当我执行mov cx,0mov cx,时结果cx是1234而不是小甲鱼讲
的0034。
那么是小甲鱼讲错了吗?希望各位能帮我解决这个疑惑,感激不尽!

lukelqz 发表于 2013-1-19 12:32:32

{:5_103:}在我映像中,小甲鱼的16位汇编视频确实有几个地方讲的有问题,你的理解是正确的。高地址的数据放高位,低地址的数据放低位。可以百度一下小端存储,数据的高位保存在内存的高地址中,而数 据的低位保存在内存的低地址中。
可以看到DS:0=CDDS:1=20,mov ax,之后,ax=20CD。和你理解的一样。看视频的时候偶尔有错误正常咯。关键理解就好啦。

kyjuvs 发表于 2013-1-19 13:54:03

lukelqz 发表于 2013-1-19 13:16 static/image/common/back.gif
在我映像中,小甲鱼的16位汇编视频确实有几个地方讲的有问题,你的理解是正确的。高地址的数据放高 ...

多谢回答!
偶尔有错误可以理解,毕竟有那么多东西要做。
所以就在网上问问各位,既然我的理解没错就ok啦

NGtailang 发表于 2013-1-19 14:11:02

难免都会有错。觉的错了能找出错误最好。人无完人嘛

22232780 发表于 2013-1-19 14:35:21

mov ax, 这样的话我想结果是 AL=34 AH=12 ,,,mov byte ptr ax, 这样的结果才是 AL=34 AH=0

韩中男孩 发表于 2013-1-19 20:23:10

       小甲鱼讲的也没错,王爽说的也没错,主要是编译器的问题,用notepad++等文本软件写的mov ax, 指令在编译过程中,编译器将其转换成 mov ax,0 这是为什么要用 mov ax, 之类的指令
       而你用的是debug中a命令直接写的 mov ax,,自然和编译链接过的exe文件,再经过debug,不一样,你不妨试下。

压寨宝宝 发表于 2013-1-20 11:41:05

韩中男孩 发表于 2013-1-19 20:23 static/image/common/back.gif
小甲鱼讲的也没错,王爽说的也没错,主要是编译器的问题,用notepad++等文本软件写的mov ax, 指 ...
兄台。我觉得,楼主说的问题是, debug中 mov ax, 移到ax中的内存单元是只是低单元一个字节的传入,还是低和高2个字节的传入。而你说的 notepad++中写好然后再编译的问题,并没有设计到高低地址单元传值的问题,而是编译的问题。你觉得勒。。
我也是刚刚看过视频觉得有点不妥的。发现论坛里有人解决了。
赞同楼主,以及解释。。支持甲鱼兄,甲鱼兄辛苦~\(≧▽≦)/~啦啦啦~~~

韩中男孩 发表于 2013-1-20 16:05:40

压寨宝宝 发表于 2013-1-20 11:41 static/image/common/back.gif
兄台。我觉得,楼主说的问题是, debug中 mov ax, 移到ax中的内存单元是只是低单元一个字节的传入,还 ...

汗,没看到下半段
页: [1]
查看完整版本: 关于小甲鱼在第五章(bx和loop)第四个视频里的一些问题