小咒 发表于 2013-7-23 23:30:55

检测点3.1的一个问题

本帖最后由 小咒 于 2013-7-24 00:16 编辑

问题:1,写出CPU执行的指令序列(用汇编指令写出)

初始值:CS=2000H IP=0 DS=1000H AX=0 BX=0


mov ax,6622h
jmp 0ff0:0100
从这里我就开始懊恼了,jmp把目标指向了图中不存在的地方,为什么答案上就接着从10000h开始了?
why?这到底是为什么。。。

忘忧的记忆 发表于 2013-7-23 23:57:37

0ff0:0100和1000:0 一样都是指向的 10000h

zkbutt 发表于 2013-7-24 00:11:24

0ff0h 左移一位 0ff00h+0100h 等于10000h注意:F+1 等于10

小咒 发表于 2013-7-24 00:11:36

忘忧的记忆 发表于 2013-7-23 23:57 static/image/common/back.gif
0ff0:0100和1000:0 一样都是指向的 10000h


通过debug查了一下好像是一样的,但是为什么0ff0:0100是指向10000h呢
能帮忙解释一下么,谢谢

小咒 发表于 2013-7-24 00:15:46

zkbutt 发表于 2013-7-24 00:11 static/image/common/back.gif
0ff0h 左移一位 0ff00h+0100h 等于10000h注意:F+1 等于10

多谢解疑~,0-F=0-16,忘记了相加16进1的规则了。。。大半夜脑子不好使了

忘忧的记忆 发表于 2013-7-24 00:19:02

小咒 发表于 2013-7-24 00:11 static/image/common/back.gif
通过debug查了一下好像是一样的,但是为什么0ff0:0100是指向10000h呢
能帮忙解释一下么,谢谢

看看物理地址的求法

物理地址=逻辑地址:偏移地址

数学的计算是    = 逻辑地址*16+偏移地址

因为是十六进制,所有*16就是在逻辑地址后加个0你想想10进制加个0是 *10不??

1000:0   就是10000h+0= 10000h

0ff0:0100= 0ff00 h +100h =10000h

小咒 发表于 2013-7-24 00:33:04

忘忧的记忆 发表于 2013-7-24 00:19 static/image/common/back.gif
看看物理地址的求法

物理地址=逻辑地址:偏移地址


恩 已经知道了,谢谢大家~

dododz 发表于 2013-7-24 09:35:02

:P:P:P:P:P:P:P:P:P:P........

大娱乐家_╮ 发表于 2013-7-24 12:55:13

看物理地址的求法:P

菜鸟一个a 发表于 2013-12-24 22:14:31

0001:0000 和0000:0010都换算为物理地址是一样的
页: [1]
查看完整版本: 检测点3.1的一个问题