鱼C论坛

 找回密码
 立即注册
查看: 2001|回复: 7

汇编语言实验四,求人解答!!!

[复制链接]
发表于 2013-1-25 10:34:26 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 carzycode 于 2013-1-25 16:17 编辑

RT~~~~~~
下面是代码:               代码的意思是将“mov 4c00H”之前的指令复制到内存0:200处。
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax.0020h
mov es,ax
mov bx,0
mov cx,17
  s:mov al,[bx]
    mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end

上面是代码。我想问的是,第一个空的CS是怎么来的。程序执行的时候ip的值一定是0吗?不然为什么是填CS?
然后第二个空,这个循环次数为什么是17,这个17是怎么数来的??
就这两个问题,求解,谢谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-25 10:36:54 | 显示全部楼层
...........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-25 10:40:19 | 显示全部楼层
因为它复制的是本段的内容,从第一条开始,所以填cs,指向第一条指令, 17H或18H 是算出来的。不知道填什么我们先用0代替,编译运行程序,就可以得出程序的长度,起长度保存在cx中,等到的数字减去最后两条语句的长度为5,得出结果,然后再填进去就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-1-25 11:07:24 | 显示全部楼层

麻烦能详细说下嘛?我把17H改成0结果死循环了。
还有,怎么得出程序的长度,起长度保存在cx中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-25 12:29:21 | 显示全部楼层
没有看懂是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-25 16:31:42 | 显示全部楼层
cs是必须这样写的的.因为题中没给要复制的段地址.17是调试的时候看出来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-25 19:13:17 | 显示全部楼层
cs不是本身的程序么,从你程序的0020h偏移地址初开始执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-25 20:40:49 | 显示全部楼层
carzycode 发表于 2013-1-25 11:07
麻烦能详细说下嘛?我把17H改成0结果死循环了。
还有,怎么得出程序的长度,起长度保存在cx中。

那你可以改成其他数字啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-7 22:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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