微机原理求物理地址的问题,那个乘16的含义是左移4位,那计算的时候应该怎么算?

在8086中,段寄存器CS=1200H,指令指针寄存器IP=0FF00H,此时指令的物理地址等于多少?
答案是21F00H
求解析,谢谢

物理地址的计算方法是段地址左移一位十六进制数,再加上偏移地址。就像你这个题目中的算法就是:12000H+0FF00H=21F00H。物理地址的计算方法都是如此。只要把相应的段地址左移一位再相加就可以。但有时候需要判断它对应的段地址。
这种题目相对来说是很简单的,只要把题目中给出的十六进制段地址左移一位,最后一位补零就可以的。
再如CS=2100H,IP=02100H。则物理地址为:2A000H+02100H=2C100H
希望对你有帮助!追问

也看到很多例题都是你说的十六进制左移一位再补零这样做的。
那请再问下公式: 物理地址=段地址×16+偏移地址 中的×16是什么含义,左移四位又是怎么来的?(上课开小差这里没听到。。。)谢谢,必采纳

追答

乘以16就是我说的十六进制的左移一位。因为题目中给我们的基本都是十六进制的数。所以我们只需要将十六进制数左移一位就可以,就相当于原数据乘以16。左移四位则是相对于二进制而言的。二的四次方就是十六。这就是为什么我们的公式中写的是乘以16而不是左移几位的原因。公式中的16只代表十进制的16这个数,但是实际应用时,题目中常常会给我们不同形式的数据,这是我们就要根据题目中给的数据的格式来算,一般的是先转换成十六进制数再算。那样是最简单的。
我相信你对进制转换应该不陌生吧。希望你能理解,希望能让你对这个公式有一个深入的了解。

温馨提示:答案为网友推荐,仅供参考
相似回答