鱼C论坛

 找回密码
 立即注册
查看: 3455|回复: 8

[争议讨论] 比较这两段代码,看看哪个更正确

[复制链接]
发表于 2011-7-30 21:05:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 weixianlang 于 2011-7-31 09:07 编辑

    编程,向内存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 [bx],bl
inc bl
loop s

mov ax,4c00h
int 21h

codesg ends
end

第二种:
assume cs:code
code segment

start:mov ax,0020h
mov ds,ax
mov bx,0
mov cx,63
s: mov [bx],bl
inc bx
loop s

mov ax,4c00h
int 21h

code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-31 08:29:02 | 显示全部楼层
感觉第二个好些吧
第一个说不定bh里也有值勒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-31 08:39:39 | 显示全部楼层
英雄所见略同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-31 09:34:41 | 显示全部楼层
嗯。不错不错,很有研究精神。 再试试用 字 进行操作 循环 20H 就完成数据填充试试。加油。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-31 10:36:58 | 显示全部楼层
在前面用40h,下面的为什么用63,循环次数还相等吗?还有[bx],能自已长吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-31 12:01:46 | 显示全部楼层
本帖最后由 china0008 于 2011-8-2 09:03 编辑

版主老师您好!
       我用loop循环20h次,虽然改变了指定空间的内存内容,但是我却用了12行代码,感觉很复杂。我思考了很久也找不出怎么把这几行代码进行优化,希望老师多多指点!再一次谢谢老师的教导。以下是我写的代码:
assume cs:code
code segment
          start: mov ax,0020h
          mov ds, ax
          mov bl,0
          mov cx,20h

 s:      mov al,bl
          inc bl
          mov ah,bl
          mov ds:[bx-1],ax
          inc bl
          loop s
  
         mov ax,4c00h
         int 21h
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-31 14:23:20 | 显示全部楼层
课件制作 发表于 2011-7-31 12:01
版主老师您好!
       我用loop循环20h次,虽然改变了指定空间的内存内容,但是我却用了12行代码,感觉 ...

我来给你改下:
assume cs:code
code segment
start:  mov cx,20h
          mov ds, cx
          mov bx,0
          mov ax,100h
s:       mov [bx],ax
          add ax,202h
          add bx,2
          loop s
  
mov ax,4c00h
int 21h
code ends
end start

评分

参与人数 1鱼币 +6 收起 理由
china0008 + 6 赞一个!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-31 14:41:06 | 显示全部楼层
死亡请帖 发表于 2011-7-31 14:23
我来给你改下:
assume cs:code
code segment

改得真好,方法新,还用cx给ds了地址。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-2 09:34:28 | 显示全部楼层
楼上 7# 其实改的很好  你还要看看他 ax 的初值  和 每次为什么递增 202H   如果硬要 把代码缩到9行 ,去掉 对bx的初始化也是可以的,也能得到正确的结果。但是从严谨角度考虑,还是要初始化的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 02:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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