比较这两段代码,看看哪个更正确
本帖最后由 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 ,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 ,bl
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
感觉第二个好些吧
第一个说不定bh里也有值勒 英雄所见略同 嗯。不错不错,很有研究精神。 再试试用 字 进行操作 循环 20H 就完成数据填充试试。加油。 在前面用40h,下面的为什么用63,循环次数还相等吗?还有,能自已长吗? 本帖最后由 china0008 于 2011-8-2 09:03 编辑
china0008 发表于 2011-7-31 09:34 static/image/common/back.gif
嗯。不错不错,很有研究精神。 再试试用 字 进行操作 循环 20H 就完成数据填充试试。加油。
版主老师您好!
我用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:,ax
inc bl
loop s
mov ax,4c00h
int 21h
code ends
end start
课件制作 发表于 2011-7-31 12:01 static/image/common/back.gif
版主老师您好!
我用loop循环20h次,虽然改变了指定空间的内存内容,但是我却用了12行代码,感觉 ...
我来给你改下:
assume cs:code
code segment
start:mov cx,20h
mov ds, cx
mov bx,0
mov ax,100h
s: mov ,ax
add ax,202h
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
死亡请帖 发表于 2011-7-31 14:23 static/image/common/back.gif
我来给你改下:
assume cs:code
code segment
改得真好,方法新,还用cx给ds了地址。
楼上 7# 其实改的很好你还要看看他 ax 的初值和 每次为什么递增 202H 如果硬要 把代码缩到9行 ,去掉 对bx的初始化也是可以的,也能得到正确的结果。但是从严谨角度考虑,还是要初始化的。
页:
[1]