段寄存器物理地址的计算已知当前段寄存器的基址(DS)
编辑: admin 2017-12-03
-
4
段寄存器的内容左移4位(我说的是二进制),就是这个段的首地址了,在这个基础上加上0ffffh,就是这个段的末地址.因为物理地址=段基地址左移4位+段内偏移地址,其中段内偏移地址是16位.
类似问题
类似问题1:段寄存器CS=1200H,指令指针寄存器IP=4000H,此时,指令的物理地址是多少?指向这一物理地址的CS值和IP值指向这一物理地址的CS值和IP值是唯一的吗?说明原因.
物理地址=段地址*10H+基地址→物理地址=1200H(段寄存器CS)*10H+4000H(指针寄存器)=16000H
指向这地址的CS=1200H IP=4000H
类似问题2:关于微机原理的题目:段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?我看答案是这样写的:CS*16+IP=12000H+FF00H=21FOOH,我的问题是为什么12000H+FF00H=21FOOH?具体的怎么加的啊?[数学科目]
12000H+FF00H这个怎么加应该会吧?与十进制的加法差不多啊.一位一位的加.当此位加值大于16之后向高位进1 .就你这个来讲吧.先是后面的0+0=0没有进位.再就是0+0=0通样没有进位,后面就是0+F=F仍然没有进位,2+F=11.估计你这个应该是不理解吧.十六进制的F是十进制的15,那么十五加二就是十七,十七大于16,需要进位.17-16=1,因此得到十六进制的11.十六进制的11就是十进制的17 .再往后就是1+0+1=2.前面的1+0是两个数相加,后面的1表示低一位的进位.这样你应该明白了吧.再例如FF21 H+12AF H=111D0 H.这个你再理解一下应该就知道如何做了.祝进步!
类似问题3:计算物理地址时段寄存器低四位为什么为零
这是关于8088/8086 CPU的问题吧?其他CPU没有这种问题.
对于8088CPU,地址宽度是20位,寻址范围是1MB.这20 bit 地址分成高4位和低16位,高4位叫物理段地址,由段寄存器控制.所以段寄存器只有4位有效,在cpu指令中规定将段地址放在段寄存器的高4位中,而段寄存器的低4位用作偏移量.
这就是说低4位可以不为0,程序会将段寄存器的低4位与低16位的地址寄存器的高4位相加,得到最后访问的地址.
类似问题4:一道微机原理题:请问寄存器寻址过程中用计算物理地址吗?不是存贮器寻址要计算物理地址码?寄存器真的也要吗?
晕,寄存器寻址不要计算物理地址,寄存器名就是地址
类似问题5:微机原理寻址当中,物理地址=段寄存器x16+寄存器中的16 是指的什么,而且每次算出的数都是 x10的结果.微机原理寻址当中,物理地址=段寄存器x16+寄存器中的16是指的什么,而且每次算出的数都是x
这个16 是 10进制的 16 ,就相当于 16进制 的 10