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

 我来答
283802332
2012-09-13 · TA获得超过3310个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:174万
展开全部
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如有不明白的地方,可追问
富港检测技术(东莞)有限公司_
2024-08-05 广告
ISTA1A&2A&3A的区别主要是以下三个方面:1. 含义不一样:ISTA1A是非模拟集中性能试验;ISTA2A是部分模拟性能试验;ISTA3A是一般模拟性能试验。2. 试验的对象不完全一样:ISTA1A、ISTA2A的试... 点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
wangfan2000
2012-09-14 · TA获得超过2549个赞
知道小有建树答主
回答量:586
采纳率:50%
帮助的人:567万
展开全部
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这个物理地址是怎么计算,我按照这个公式,可是和答案不一样     谢谢
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牛哥TF
2012-10-23
知道答主
回答量:27
采纳率:0%
帮助的人:11.8万
展开全部
推荐答案错了:物理地址=段地址×10+偏移地址,所以后面的16都要改成10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-09-13
展开全部
SI DI BX BP SS DS 都是十六位寄存器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
humaha
2017-07-22 · TA获得超过2440个赞
知道大有可为答主
回答量:1623
采纳率:58%
帮助的人:535万
展开全部
这些是CPU附带的寄存器,跟存储器的地址毫无关联。寄存器里的数据可以与存储器任何地址的单元相互赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式