汇编基础问题

[复制链接]
查看11 | 回复3 | 2009-1-23 12:11:07 | 显示全部楼层 |阅读模式
在计算机的寄存器中,用debug看,cs,ip都是指向马上要执行的命令,我想知道,每个时刻的执行是谁通知它执行的,这个执行的内容到底是谁给它的,为什么我们又可以随时用R命令该cs,ip的内容,也不导致计算机的正常运行?在内存地址段中,为什么用d命令看,都是随时有内容的,而我们在内存中随意修改(1000:0,2000:0,3000:0.......)的内容也没有导致内存提示的写操作失败(当然我指的是在我现有知道的某一部分内存),并且,我怎么知道内存中的内容到底是哪一个软件给出的呢,而且这个内容根本就看不懂它的起止,等等......希望能做一个比较详实的回答,我把我目前所有的积分都用来答谢您!

回复

使用道具 举报

千问 | 2009-1-23 12:11:07 | 显示全部楼层
CPU 要执行的命令不是谁给它的,是它自己到内存中去取来的,机器一加电,CS:IP 就指向了 FFFF:0000,这里存放着电脑要执行的第一条指令,以后 CS:IP 会跑到哪里去,全由它正在执行的指令的内容来决定了。进入 debug 后,用 r 命令可以查看各寄存器的状态,譬如用 rip 可以看到 ip 所指地址,但实际此时真实的 ip 寄存器并非指向你看到的那个地址,奥妙就在这里。debug 本身也是一个程序,CPU 也在执行它的代码,当你用 R 命令查看 IP 时,此时真实 IP 所指的是 R 命令的当前代码,它显示给你的那个 IP 是 R 命令从它维护的堆栈里找给你的。可以说,debug 接管了 CPU,CPU 实际上是被 debug 控...
回复

使用道具 举报

千问 | 2009-1-23 12:11:07 | 显示全部楼层
1.这个没有什么通知不通知的,CPU就是一个能够自动提取内存中的指令并执行指令的东西,CPU是电脑的大脑,CPU是命令其他硬件的 2.CPU的T指令是利用CPU的陷阱中断来实现的,这个中断是这样的: CPU每执行完一条指令,就触发一次这个中断R指令应该也类似,不过我不敢确定 使CPU进入陷阱中断的方式是讲陷阱标志位置1 3.我有点看不明白...
回复

使用道具 举报

千问 | 2009-1-23 12:11:07 | 显示全部楼层
CPU读一条指令后就自动修改IP,以指向下一条指令.当它执行完一条指令后就能够接着执行下一条指令.如果是转移指令IP,CS可能要修改.复位时CS,IP自动赋值....
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行