鱼C论坛

 找回密码
 立即注册
查看: 3740|回复: 4

请教“实验4 - 实验任务解答”

[复制链接]
发表于 2011-3-21 09:24:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 loop 于 2011-5-7 23:22 编辑

第二题“编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括“mov ax,4c00h”和“int 21h”。”中小甲鱼老师给出的答案如下
  1. assume cs:codesg
  2. codesg segment

  3.      mov ax,0020h

  4.      mov ds,ax

  5.      mov bl,0

  6.      mov cx,40h

  7. s:   mov [bx],bl

  8.      inc bl

  9.      loop s



  10.      mov ax,4c00h

  11.      int 21h



  12. codesg ends

  13. 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

点评

代码请用[code] [/code]扩起来,方便复制和阅读。  发表于 2011-4-29 22:47
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-21 10:31:51 | 显示全部楼层
都可以啊。 16位最大可以表示FFFF,8位最大可以表示FF,按照题意用8位就够了。本着能省就省的原则就是用8位啦。游戏到后期寄存器不够分配的时候这种思路也是种方法了。再不行就得利用栈了。(不过这是后话了,继续学习哈。)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-29 22:24:54 | 显示全部楼层
回复 china0008 的帖子

请问这一题中、、mov bl,0、、再后来mov [bx],、、、这个里面bx中的bh是多少呢?一定是0吗??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-30 19:00:31 | 显示全部楼层
程序一开始,各寄存器没有赋值的时候都是0
如果bh用不上,个人还是建议用bx,这样不用把bh专门赋值为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-13 21:13:26 | 显示全部楼层
bl中的值给内存,每次是bl-》ds:【bx】这样的情况是,每次把一个8位十六进制数存放到内存单元,而一个内存单元正好是8位。如果bl改成bx,每次要将两个字节16位存入内存,得多用一个内存单元,我觉得o要占一个内存单元,但是bx每次只加一,所以第二个单元的零被覆盖了,所以没有区别,只是bl更逻辑些。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 16:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表