- 57H H代表十六进制
- 57 十进制
- 010101001B B代表二进制
- A=10
- B=11
- C=12
- D=13
- E=14
- F=15
段地址*16(10H)+ 偏移地址= 内存地址(物理地址)
段地址*16=基础地址
基础地址+偏移地址=物理地址
注:10H是 十进制数16的十六进制的形式
因为8086CPU有20根地址线,16位寄存器无法表示所以才采取这样的计算方式
举个例子:我有两张纸,但是每张纸上面只能写2个数字,但是我需要告诉你一个三位数的数字。
一个是50 一个是20 拿到这两张纸后 你需要做一个运算:
第一张纸*10+第二张纸=520
这里50就相当于是段地址,20相当于是偏移地址,520就是最后的物理地址
例题:现在有一个段地址CS=0F8AH ,偏移地址IP=2460H。求内存地址
按照公式:段地址*10H+偏移地址=内存地址
得:0F8AH*10H+2460H
H代表前面的数是十六进制的,所以不看它。 0F8A*10=0F8A0 再来加上偏移地址
A+6如何计算呢? 文章最前面有提到A=10,相当于是10+6,是十六吗?由于是十六进制的数相加,满16进1,所以这里其实只是“进1”
所以第三位应该是 8+4+1=13 ,13在十六进制中是D,所以写D
同理,F代表15,15+2=17,满16进1,余1,高位进1 最后结果11D00
1 条评论
[…] 汇编(3)物理地址计算方法:段地址*16+ 偏移地址= 内存地址(物理地址) […]