鱼C论坛

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

第五章的课后题

 关闭 [复制链接]
发表于 2011-9-12 18:39:38 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 再生缘 于 2011-9-13 17:22 编辑

(2) 编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括“mov ax,4c00h”和“int 21h”


assume cs:code
code segment
mov ax,0200h
mov ds,ax
mov bx,0
mov cx,40h
s: mov [bx],bx
inc bx
loop s

mov 4c00h
int 21h
code ends
end

不知道这个程序对不对呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-12 21:41:26 | 显示全部楼层
本帖最后由 ytrfamli 于 2011-9-12 21:49 编辑

1.
mov ax,0200h
使得数据写到内存2000h的位置去了,
ds=0200h时,算出的内存段地址是
200h*10h=2000h.

改为
mov ax,0020h
使得算出的段地址成为
0020h*10h=0200h
才能写到正确位置

2.
mov [bx],bx
一次写入2个byte,但是,每一次回圈bx只增加1,(影响[bx]指向的地址)
也就是说,想要写入的数据是一路盖掉上一次的数据的,即

bx=0000h时,写入[bx],则内存
0200:0  被写入00(低位的bl)
0200:1  被写入00(高位的bh)

接着bx=0001h时,写入[bx],则内存
0200:1  被写入01(低位的bl)
0200:2  被写入00(高位的bh)

改成
mov [bx],bl
就不会如此,一次只写入1个byte
(不过,此处不作修改结执行果依然会是正确的,
因为刚好想要写进的数据都是在低位的bl,
高位的bh被覆盖没有影响)

3.
mov 4c00h

这恩,不算什麽bug,只是少写了ax.

应为mov ax,4c00h才是.


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-13 16:20:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-13 16:32:14 | 显示全部楼层
我这个虽然地址是0200的段地址 但是有写入0-64h到内存啊
QQ截图20110913162334.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-13 16:42:38 | 显示全部楼层
本帖最后由 ytrfamli 于 2011-9-13 16:43 编辑

>>我这个虽然地址是0200的段地址 但是有写入0-64h到内存啊
恩,LZ如此编写,具体说来是可以运作的,只是我看LZ的题目是

编程,向内存0:200~0:23F依次传送数据0~63

也就是说

编程,向内存0020:0~0020:3F依次传送数据0~63,而不是
编程,向内存0200:0~0200:3F依次传送数据0~63

因此才提出来.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-13 16:54:02 | 显示全部楼层
ytrfamli 发表于 2011-9-13 16:42
>>我这个虽然地址是0200的段地址 但是有写入0-64h到内存啊
恩,LZ如此编写,具体说来是可以运作的,只是我看L ...

哦 这个我承认我太大意了 mov [bx],bx  这个虽然是高位是会被覆盖 但是应该不影响结果吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-13 17:07:55 | 显示全部楼层
>>这个虽然是高位是会被覆盖 但是应该不影响结果吧
确是如此.请参考#2楼 第2点,尾巴有提到.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-13 17:22:32 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-13 21:31:17 | 显示全部楼层
学习~~~~~~~~~~~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 04:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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