关于cs和ip的问题
在王爽书上24页的那个过程我发现一个问题,cpu如果知道一条指令有多少字节? 那里有2个也有3个字节,通过什么知道读取多少字节的? 一条指令由:指令(或说“操作”,add/sub/mov/jmp)和操作数(操作的数据)组成。汇编或机器指令为什么把“操作”放前面呢?就是因为它决定了需要有几个操作数以及操作数是多少字节。即,CPU读到指令后就知道再向后读几个字节来取操作数。而一条指令可以是1个字节或N个字节,其操作数可以是2个字节或3个字节,而这些都是CPU设计者决定的。
个人理解,抛砖引玉而已:) 機器指令不是固定的字節, 像PUSH, INC 等都只用到一個字節, MOV大概是用3個字節, 你只要通過DEBUG的 U 命令, 去觀看CS:IP所在的記憶體每條命令的位址變化就可以知道這些指令有多少字節
機器語言具體的內容就不用去糾結了, IP的地址在執行指令前跟執行指令後箱檢就可以得到答案了
http://bbs.fishc.com/thread-47245-1-2.html 这个过程挺复杂的! 这年头灌水也要专业的。
页:
[1]