|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
首先我们感谢小甲鱼的无私奉献! 在这里无限鳌拜中{:7_155:}
第5章视频[bx]和loop指令026 -温故而知新
其中有一道题目是这样的:
将内存2000:0 2000:1 2000:2 2000:3 单元中的数据送入al,bl,cl,dl中。
(1) 在DEBUG 中编程实现
这个相信大家都没问问题
(2) 汇编程序实现
看到这里我就暂停了视频 我的思想是 我先写一下 在看看小甲鱼怎么给咱们讲
的~~~
接着我就拿起记事本写下如下代码:
assume cs:xiaojiayu
xiaojiayu segment
start:
mov ax,2000h
mov ds,ax
mov ax,0
mov ax,[ax]
mov bx,1
mov bl,[bx]
mov cx,2
mov cl,[cx]
mov dx,3
mov dl,[dx]
mov ax,4c00h
int 21h
xiaojiayu ends
end
紧接着 我把它命名为1.asm 然后进入DOS MASM 编译! 结果如图:
刚开始我死活不知道为什么 在第7 11 13 行出错!! 死活想不通 ,然后经过
群里人的帮组!才知道 原来通用寄存器除了 BX能加 [] 之外 其他通用寄存器
是不允许这种事儿的!!然后我就纠结了 我们可爱的小甲鱼没说过 书上没说
过..... 这时群里某人才给了我答案! 如下图:
原来 王爽第二版 书在8.1章说了 只有 [idata] [bx] [si] ...都不知道什么! 但是已经证明 原来 除了 [bx] 其他X X X X 是不允许加[]的 是犯法的 是犯罪的...
我也在 deug中验证了 这本书的说法:
mov al,[ax]
mov cl,[cx]
mov dl,[dx]
debug淡定的告诉我 我得去坐牢了。。。。。。。
我们的小甲鱼视频课程 王爽汇编第二版电子书.PDF竟然在第5章漏掉了这么一个重要的规定。。。我是无辜的。。:'(
好吧 我认了 这是宇宙规定 这是王法 这是纪律~~~
所以根据第8.1章得规定那大家请看小甲鱼视频第5章[bx]和loop指令026中第 12:44 的的时间段如图:
我们伟大的小甲鱼讲到这里的时候: 说只说了 :“我们就实现两个试试看”
那就是说如果按照小甲鱼视频上 第12:44 时间写的那样代码的排列那应该是只能实现两个地址的写入而根本没办法实现4个???
...
...(略过)
..
..
mov bx,0
mov al,[bx]
mov bx,1
mov bl,[bx] 此时: bL中已经有 2000:1 的数据
就是说 BX 已经被占用了!为了达到题目的要求 已经不能再给 CX 和DX 使用了!
代码就没办法写下去了。。。
assume cs:xiaojiayu
fang segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
mov al,[bx]
mov bx,2
mov cx,[bx]
mov bx,3
mov dl,[bx]
mov bx,1
mov bl,[bx]
mov ax,4c00h
int 21h
xiaojiayu ends
end
我们应该把 BL 的值放在最后执行??
我也只是 个初学者 !! 也很疑惑!! 如果哪里错了!~~请大侠们指正~~~!!~
|
|