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

如题所述

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个回答  2018-05-29

si、di分别是源、目的变址寄存器,bx是数据基址寄存器,bp是栈基址寄存器,SS、DS是段地址寄存器。

物理地址=段地址×16+偏移地址,指令中出现BP作地址,则其段地址为SS,否则就为DS。

汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。

第2个回答  2018-02-13
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如有不明白的地方,可追问

...BP、SS、DS分别是什么?怎样根据这些求物理地址?
si、di分别是源、目的变址寄存器,bx是数据基址寄存器,bp是栈基址寄存器,SS、DS是段地址寄存器。物理地址=段地址×16+偏移地址,指令中出现BP作地址,则其段地址为SS,否则就为DS。汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时...

...BP、SS、DS分别是什么?怎样根据这些求物理地址?
1.汇编语言 SI DI BX BP SS DS 是什么\\x0d\\x0a SI: 16位寄存器,源变址寄存器\\x0d\\x0a DI: 16为寄存器,目的变址寄存器\\x0d\\x0a BX: 16位寄存器(可分成2个8位寄存器BH,BL),基址寄存器\\x0d\\x0a BP: 16位寄存器,基址指针寄存器\\x0d\\x0a SS : 16...

汇编语言寄存器都叫什么
BX:基址寄存器。CX:计数寄存器。DX:数据寄存器。SP:堆栈指针寄存器。BP:基址指针寄存器。SI:源变址寄存器。DI:目的变址寄存器。IP:指令指针寄存器。CS:代码段寄存器。DS:数据段寄存器。SS:堆栈段寄存器。ES:附加段寄存器 。OF:溢出标志,操作数超出机器能表示的范围表示溢出,溢出时为1。SF:...

汇编语言
(1)是寄存器相对寻址方式 如果指令中指定的寄存器是bx, si, di,则操作数在数据段中,如果没有指定,则使用DS段。物理地址就是:(DS)*16D + (bx) (或者是(si), (di)) +偏移量 如果寄存器使用了BP,则操作数在堆栈段(SS)中,物理地址:(SS)*16d+(bp)+偏移量 [bp+20],就是ss:[bp+...

汇编语言中, SI、 DI、 SI、 DI有什么区别?
SI是源变址寄存器,用于存放源操作数的偏移地址,并且SI的内容有自动修改的功能,故称为源变址寄存器。DI是目的寄存器,用于存放目的操作数的偏移地址,并且DI的内容有自动修改的功能,故称为目的变址寄存器。DI和SI 这两个属于变址寄存器,可以和bx.bp联用,但是和bx连用时,段地址在DS中,和bp联用...

汇编语言中cs.ds.es.ss怎么用?
BP(BasePointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(SourceIndex):源变址寄存器可用来存放相对于DS段之源变址指针;DI(DestinationIndex):目的变址寄存器,可用来存放相对于ES段之目的变址指针。这4个16位寄存器只能按16位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的...

汇编语言中什么是相对基址变址寻址?
操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位\/16位偏移量之和。在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则其缺省的段寄存器为SS;否则,其缺省的段寄存器为DS。指令中给出的8位\/16位偏移量用补码表示。在计算有效地址...

汇编语言中cs,ds,ss的区别
DS(数据段寄存器)用于存储数据段的段基值。SS(堆栈段寄存器)用于存储堆栈段的段基值。二、作用和位置差异 CS指向当前执行的代码段,与IP寄存器结合以确定下一条指令的地址,通常不直接修改。DS指向数据段,用于存储程序中使用的数据,其内容可以由程序修改。SS指向堆栈段,与SP(堆栈指针)寄存器共同...

汇编语言中,SP,BP ,SI,DI作用?
SI:是源变址寄存器,默认段地址和DI一样,在DS中.和DS联用.这四个寄存器,都是16位的,不可以分割为八位.要注意,1,sp和bp段地址默认在SS中.2..sp指向栈顶元素地址.有自加和自减能力,而bp没有.但是bp可以定位栈中某个元素的物理地址.DI和SI 这两个属于变址寄存器.可以和bx.bp联用,但是和bx...

汇编语言寄存器都叫什么
汇编语言寄存器都叫什么1、寄存器32位寄存器有16个,分别是:4个数据寄存器(EAX、EBX、ECX、EDX)。2个变址和指针寄存器(ESI和EDI);2个指针寄存器(ESP和EBP)。6个段寄存器(ES、CS、SS、DS、FS、GS)。1个指令

相似回答