首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

学习loop,遇到关于一个sub的有关问题,本人初学者,求高手

2012-03-01 
学习loop,遇到关于一个sub的问题,本人菜鸟,求高手目的是将0000:0200-0000:023f依次填上0-63的六十四个数源

学习loop,遇到关于一个sub的问题,本人菜鸟,求高手
目的是将0000:0200-0000:023f依次填上0-63的六十四个数
源代码如下:
assume cs:code

code segment
mov ax,0000H
mov ds,ax

mov bx,0240H
mov cx,64
s:mov [bx],cx
sub bx,1
loop s
mov ax,4c00H
int 21H
code ends
end
做出来实现的是仅仅将循环的最后一位赋值了,其余都被清零了,费解,费解啊,求高手



[解决办法]

探讨
引用:

sub bx,1 ;这里有问题额,bx 16位,那样存高位都是0

还是不明白诶,bx这里只是一个偏移地址,sub不会是将ds:bx中的值给赋值了吧

[解决办法]
探讨

引用:

sub bx,1 ;这里有问题额,bx 16位,那样存高位都是0

还是不明白诶,bx这里只是一个偏移地址,sub不会是将ds:bx中的值给赋值了吧

[解决办法]
你应该进行字节操作,但mov [bx],cx是字操作,而cx的高字节为0,会覆盖之前所传的值。
这样改:
mov [bx], cl
在masm中编译运行,结果正确。

热点排行