鱼C论坛

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

汇编语言实验4第三小题关于ip

[复制链接]
发表于 2013-8-25 23:36:45 | 显示全部楼层 |阅读模式
20鱼币
QQ截图20130825172817.png 终于弄明白了,刚刚又编译调试了一下,cx里面是1ch减去mov ax,4c00h 的机器码为B8004C 3个字节
int 21h为CD21 占两个字节等于17h,我在来说一下我的理解,cs:ip指向程序的第一条段地址在cs内,所以把cs的值附给ds,用bx里的内容作偏移地址,bx初始化是0,所以第一个地址是cs:bx。我们如何知道复制的内容最后一个地址是多少?我们就需要知道这个程序的长度。在这里我提出2个疑问,如果ip里面的值不是从0开始的话,哪如何办呢?如何知道这个程序程序地址是连续的?

最佳答案

查看完整内容

cs:ip 所指向的数据便是代码 ds:ip 所指向的数据便是数据 mov ax, 这行代码中,其实是ds:bx 至于为什么bx是零,这是系统分配机制的问题,放心吧,不会错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-25 23:36:46 | 显示全部楼层
本帖最后由 LinuxDeepin 于 2013-8-26 00:04 编辑

cs:ip 所指向的数据便是代码
ds:ip 所指向的数据便是数据

mov ax,[bx] 这行代码中,[bx]其实是ds:bx
至于为什么bx是零,这是系统分配机制的问题,放心吧,不会错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-25 23:45:45 | 显示全部楼层
理解错误了,cs:ip 指向第一行代码,这是由系统分配内存地址决定的。
bx 是寄存器,在用 [bx] 形式中,bx寄存器中的数值,会当成偏移地址。

想知道程序的长度,建议你直接debug a命令输入即可知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-25 23:47:37 | 显示全部楼层
O(∩_∩)O~这个最后那个地址就需要你自己计算了 O(∩_∩)O~
就像计算2^5 CX的值一样 你得自己计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-25 23:50:46 | 显示全部楼层
还有 cs:ip是指向第一句代码的 cs:bx 这个怎么会是第一个地址呢
ds默认是bx cs默认是ip啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-25 23:54:51 | 显示全部楼层
如果不会用debug a命令写程序的话,那么你可以直接把整个程序写好,cx值随便写一个。
然后编译,debug *.exe 运行。

r 命令查看 cs 和 ip 所指向的地址,
u 命令查看地址所指向的汇编代码。
在显示出来的代码左侧,有段地址和偏移地址,你仔细看看偏移地址的变化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-25 23:55:55 | 显示全部楼层
本帖最后由 福禄娃娃 于 2013-8-25 23:57 编辑

复制的内容最后一个地址可以通过debug看出,单步跟踪
CX中保存的是程序的长度
CS:IP始终指向下一条指令的地址,一般情况下使用记事本写的源码用masm编译后,ip一般为0
如果在debug中通过a写入汇编指令,比如a 6000:1234  回车  mov ax,1 这时如果要执行mov ax,1便需要手动修改CS:IP的指向了。r cs 6000   r ip 1234
可以用d指令来查看内存中的内容,然后再用u指令便可看出指令是否连续。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-8-25 23:59:33 | 显示全部楼层
我的意思是程序前面都附完值后段地址还是在ds中bx就当做偏移地址来使用,怎么知道偏移地址是从0开始的,如果开始的时候偏移地址不是从0开始的那在bx赋值0的话不就错了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-8-26 00:12:39 | 显示全部楼层
谢谢兄弟们帮我回答,我要睡了,明天还要站着干一天活
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 03:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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