岑小岑 发表于 2013-12-9 18:05:05

王爽汇编语言.3.1(2)

为什么先执行地址20000H的指令而不是10000H的指令,执行jmp指令后为什么会跳到mov ax,2000h

lcwwq 发表于 2013-12-9 18:05:06

1.因为CPU执行指令是以CS:IP为依据,CS=2000H,IP=0
2.JMP 0FF0:0100   那么段地址为:0FF0 偏移地址:0100因此所指的内存单元为:段地址X16(即是段地址左移一位)+偏移地址,所以内存单元为:0FF00H+0100H=10000H也就是地址: 1000:0

浮砂 发表于 2013-12-9 19:19:46

天啊,描述的清楚一点好不啦?

a~传_说~a 发表于 2013-12-9 20:35:15

2000H是这段代码的入口,JMP后面跟着的是一个地址,0100是偏移量对应跳转。

~逆天~ 发表于 2013-12-10 14:22:17

真心没看懂

岑小岑 发表于 2013-12-10 16:17:55

~逆天~ 发表于 2013-12-10 14:22 static/image/common/back.gif
真心没看懂

不好意思噢,以为你们都有课本的{:7_154:}

青玄 发表于 2013-12-10 19:42:40

大哥啊!我真没搞懂你说的是什么意思!

zjhwasd 发表于 2013-12-10 19:56:14

应该是图片不完整吧

岑小岑 发表于 2013-12-16 14:53:48

lcwwq 发表于 2013-12-12 00:16 static/image/common/back.gif
1.因为CPU执行指令是以CS:IP为依据,CS=2000H,IP=0
2.JMP 0FF0:0100   那么段地址为:0FF0 偏移地址:010 ...

{:5_95:}谢谢
页: [1]
查看完整版本: 王爽汇编语言.3.1(2)