鱼C论坛

 找回密码
 立即注册
楼主: 缌唸

[汇编作业] 实验4 第三题 自己的见解 不懂得朋友大家进来看看把吧

[复制链接]
发表于 2015-10-24 22:05:37 | 显示全部楼层
本帖最后由 NBeeeeee 于 2018-6-12 15:52 编辑

。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-24 22:06:23 | 显示全部楼层
本帖最后由 NBeeeeee 于 2018-6-12 15:52 编辑

。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-24 22:07:10 | 显示全部楼层
本帖最后由 NBeeeeee 于 2018-6-12 15:51 编辑

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-23 00:03:43 | 显示全部楼层
楼主,一开始cx=1c这个是怎么算出来的:dizzy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-24 11:44:18 | 显示全部楼层
过来 看一看 呵呵。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-11 01:36:42 | 显示全部楼层
我一直不理解为是mov ax,cs而不是其它XS,

现在明白了~~~辛苦了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-13 13:28:11 | 显示全部楼层
半个小时  总算是弄明白了:
1,此题与其他问题无关;
2,此题问的是‘把任意一段源码中mov ax,4c00h之前的汇编指令转化成机器指令的代码’复制到0:200地址处,并依次存储

既然是汇编转机器指令的复制,且又是往内存存储,就需要cs=ds,且要以cs的段地址为基础,那就成了段寄存器与段寄存器之间的转移、复制了。段地址需要一个通用寄存器来转,而内存的内容需要一个段寄存器的段地址:偏移地址来转,s:之前的无非就是ds和cs的段地址的转化、定义一个段寄存器的段地址、再给一个通用寄存器赋初值(内存的偏移需要)、计算循环次数并赋给cx寄存器;

不知道s:中的mov al,[bx]与mov es:[bx],al    能否合成一句    mov es:[bx],ds:[bx] 这样能节省(cx)步执行;

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-5 15:58:18 | 显示全部楼层
智商不够都没搞明白问的是什么,只能先看答案再思考了。谢谢楼主了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-7 14:16:10 | 显示全部楼层
qzq 发表于 2015-11-23 00:03
楼主,一开始cx=1c这个是怎么算出来的:dizzy:

程序运行前 CX寄存器中存的是程序的大小
说实话,我真不知道指令占的字节大小,所以它那个减法的还靠谱些

评分

参与人数 1鱼币 +1 收起 理由
缌唸 + 1 感谢回答

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-3-10 21:40:55 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-10 22:00:47 | 显示全部楼层
燕子湖畔 发表于 2016-3-7 14:16
程序运行前 CX寄存器中存的是程序的大小
说实话,我真不知道指令占的字节大小,所以它那个减法的还靠谱 ...

嗯嗯,是的,谢谢你的回答,帖子好久了,好多人都没回,最近又开始重新学习汇编了,一起加油啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-10 22:01:32 | 显示全部楼层
燕子湖畔 发表于 2016-3-7 14:16
程序运行前 CX寄存器中存的是程序的大小
说实话,我真不知道指令占的字节大小,所以它那个减法的还靠谱 ...

嗯嗯,是的,谢谢你的回答,帖子好久了,好多人都没回,最近又开始重新学习汇编了,一起加油啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-10 22:02:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-16 12:53:09 | 显示全部楼层
qzq 发表于 2015-11-23 00:03
楼主,一开始cx=1c这个是怎么算出来的:dizzy:

mov 寄存器和立即数是三个字节,mov寄存器和寄存器是两个字节,inc寄存器是两个字节,loop s是两个字节,这样去算吧,加起来就是17.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-16 12:55:02 | 显示全部楼层
sub  CX,5不一定会正确,此题正确是因为只有一个段,如果有多个段,CX的结果就不一定正确了。

所以书中“CX存放程序的长度”应该改为只有一个段时程序的长度。

我记得坛子里有帖子说明过这个事情。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-16 15:28:02 | 显示全部楼层
兰陵月 发表于 2016-3-16 12:55
sub  CX,5不一定会正确,此题正确是因为只有一个段,如果有多个段,CX的结果就不一定正确了。

所以书中 ...

嗯嗯,但这个题程序很短,肯定没超,所以是没问题的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-7 11:44:29 | 显示全部楼层
终于在这里看到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-24 10:33:58 | 显示全部楼层
我想问一下,为什么我用Masm for Windows集成实验环境,然后什么也不写,代码段只有MOV AH 4CH   和 INC 21H两行代码,调试时会显示CX=5?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-24 10:35:50 | 显示全部楼层
找到问题了 那个一开始初始化了三个段 ,看了36楼的回复知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-25 23:05:28 | 显示全部楼层
这个答案却是在意料中,确也在情理之外,谁知道王爽的目的既然是要我们自己数字节数。我以为会有其他的奇技淫巧可以访问这个长度呢,看来是我多心了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 23:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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