请教“实验4 - 实验任务解答”
本帖最后由 loop 于 2011-5-7 23:22 编辑第二题“编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括“mov ax,4c00h”和“int 21h”。”中小甲鱼老师给出的答案如下assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bl,0
mov cx,40h
s: mov ,bl
inc bl
loop s
mov ax,4c00h
int 21h
codesg ends
end但是我自己做的时候其中的一句mov bx,0 和小甲鱼老师用的 mov bl,0不一样 但结果一样
请问 是将整个BX置零好还是仅仅置零BL,有什么区别
本文来自:鱼C工作室<a href=http://www.fishc.com>详细出处参考:http://www.fishc.com/a/kehouti/_huibianyuyan_/828.html 都可以啊。 16位最大可以表示FFFF,8位最大可以表示FF,按照题意用8位就够了。本着能省就省的原则就是用8位啦。游戏到后期寄存器不够分配的时候这种思路也是种方法了。再不行就得利用栈了。(不过这是后话了,继续学习哈。) 回复 china0008 的帖子
请问这一题中、、mov bl,0、、再后来mov ,、、、这个里面bx中的bh是多少呢?一定是0吗?? 程序一开始,各寄存器没有赋值的时候都是0
如果bh用不上,个人还是建议用bx,这样不用把bh专门赋值为0 bl中的值给内存,每次是bl-》ds:【bx】这样的情况是,每次把一个8位十六进制数存放到内存单元,而一个内存单元正好是8位。如果bl改成bx,每次要将两个字节16位存入内存,得多用一个内存单元,我觉得o要占一个内存单元,但是bx每次只加一,所以第二个单元的零被覆盖了,所以没有区别,只是bl更逻辑些。
页:
[1]