刘金伟 发表于 2013-1-26 22:30:27

关于jmp的疑问

本帖最后由 刘金伟 于 2013-1-26 22:31 编辑

汇编第九章里面 依据位移进行转移的jmp指令 里小甲鱼讲了一个关于补码的内容,F6+A=0
小甲鱼说FA为补码=-10
我想问的是,cpu在处理汇编程序代码(识别机器码)时是怎样知道那些应该看做补码,那些直接读取?
比如像上面 F6 如果直接转换为十进制为246,不是-10~~~求解

张国祥 发表于 2013-1-28 09:50:10

哪些是指令?哪些是数据?呵呵,完全看cs:ip的指向,cs:ip指哪,哪就是指令,ds决定的段地址,便是数据段,可以利用bx,si,di,bp等进行寻址找数据。
在计算机里,数据都是以补码方式保存的。

NGtailang 发表于 2013-1-28 09:56:03

数据的正负完全是看编程人员也就是我们自己的,后面章节会讲到,继续学吧

jeset 发表于 2013-1-29 08:57:28

我猜想的是这个指令其实是编译器和已经给CPU指示好了,比如说:
s:mov ax,bx

jmp short s

那么按上往下的执行,肯定s标示在jmp指令前面。那么CPU就计算jmp short s下面一个指令的地址加上这个地址的偏移地址!
页: [1]
查看完整版本: 关于jmp的疑问