永发信息网

汇编语言 SI DI BX BP SS DS 是什么 怎样根据这些求物理地址

答案:7  悬赏:20  手机版
解决时间 2021-11-10 11:33
  • 提问者网友:最美的风景
  • 2021-11-10 01:19
汇编语言 SI DI BX BP SS DS 是什么 怎样根据这些求物理地址
最佳答案
  • 五星知识达人网友:忘川信使
  • 2021-11-10 02:39
1.汇编语言 SI DI BX BP SS DS 是什么
SI: 16位寄存器,源变址寄存器
DI: 16为寄存器,目的变址寄存器
BX: 16位寄存器(可分成2个8位寄存器BH,BL),基址寄存器
BP: 16位寄存器,基址指针寄存器
SS : 16位段寄存器,作用是存放当前堆栈段的段地址,一般和SP连用
DS: 16为段寄存器, 作用是存放当前数据段的段地址

2.怎样根据这些求物理地址
上面的这几个寄存器跟求物理地址谈不上关系.
有个公式: 物理地址 = 基础地址 + 偏移地址 = CS*10H(基础地址)+ IP(偏移地址)
CS: 16位段寄存器,存放当前代码段的段地址
IP: 存放下一条要执行的指令的偏移地址

LZ如有不明白的地方,可追问
全部回答
  • 1楼网友:走死在岁月里
  • 2021-11-10 08:49
MOV AX,[BX] DS=2000H BX=0100H这个物理地址是怎么计算?BX物理地址=20000H+0100=20100H2000H是16进制所以2000H ×16=20000H
  • 2楼网友:慢性怪人
  • 2021-11-10 07:57
SI DI BX BP SS DS 都是十六位寄存器
  • 3楼网友:骨子里都是戏
  • 2021-11-10 06:23
推荐答案错了:物理地址=段地址×10+偏移地址,所以后面的16都要改成10
  • 4楼网友:行路难
  • 2021-11-10 05:46
物理地址=段地址*10H + 偏移地址。
  • 5楼网友:独钓一江月
  • 2021-11-10 04:47
这些是CPU附带的寄存器,跟存储器的地址毫无关联。寄存器里的数据可以与存储器任何地址的单元相互赋值。
  • 6楼网友:玩世
  • 2021-11-10 03:37
SI、DI、BX、BP是8086CPU可用来作指针使用的寄存器,一般用来表示一个偏移量,具体的和寻址方式有关。
SS、DS是段地址寄存器。
由于8086CPU是16的,而其存储容量可达1MB,也就是20位的寻址空间,因此编程时用两个16位的地址来表示,即 段地址:偏移地址,它和实际地址,也就是物理地址的关系是:
物理地址=段地址×16+偏移地址

对于上面的寄存器,当作地址使用时,根据寻址方式不同,有一种默认关系,只要指令中出现BP作地址的,则其段地址为SS,否则就为DS。当然还有段前缀一说,这要看实际情况来定了。
比如:
MOV AX,[BX];则其物理地址=DS×16+BX
MOV AX,[BP];则其物理地址=SS×16+BP
MOV AX,[BX][SI] ;则其物理地址=DS×16+(BX+SI)
MOV AX,[BP][SI];则其物理地址=SS×16+(BP+SI)追问MOV AX [BX] DS=2000H BX=0100H这个物理地址是怎么计算,我按照这个公式,可是和答案不一样 谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯