汇编语言中, SI、 DI、 SI、 DI有什么区别?

如题所述

SI是源变址寄存器,用于存放源操作数的偏移地址,并且SI的内容有自动修改的功能,故称为源变址寄存器。

DI是目的寄存器,用于存放目的操作数的偏移地址,并且DI的内容有自动修改的功能,故称为目的变址寄存器。

DI和SI

这两个属于变址寄存器,可以和bx.bp联用,但是和bx连用时,段地址在DS中,和bp联用时,段地址在SS中,也可以单独使用,单独使用时,段地址默认在DS中,想要越段使用,加上段前缀即可。

在串指令操作中,si和ds联用,确定目标源地址,di和es(附加段寄存器)联用,确定传送的目的地址,就是分别寻址数据段和附加段。

在串指令中,si和di具有自加和自减功能。

扩展资料:

由于汇编指令系统庞大,因而需构建指令系统体系,其指令数量庞大,格式复杂,可记忆性差等。指令中最难的是指令所支持的寻址方式,其实质就是指令中操作数如何获取。

这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、比较操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV、符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS等。

优点

汇编语言作为机器语言之上的第二代编程语言,它也有很多优点:

1、可以轻松的读取存储器状态以及硬件I/O接口情况。

2、编写的代码因为少了很多编译的环节,可以能够准备的被执行。

3、作为一种低级语言,可扩展性很高。

缺点

1、因为代码非常单调,特殊指令字符很少,所以造成了代码的冗长以及编写的困难。

2、因为汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易。

3、就算完成了一个程序,后期维护时候也需要耗费大量的时间。

4、因为机器的特殊性造成了代码兼容性差的缺陷。

参考资料来源:百度百科-汇编语言 (面向机器的程序设计语言)

温馨提示:内容为网友见解,仅供参考
无其他回答

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

汇编语言寄存器都叫什么
SI:源变址寄存器。DI:目的变址寄存器。IP:指令指针寄存器。CS:代码段寄存器。DS:数据段寄存器。SS:堆栈段寄存器。ES:附加段寄存器 。OF:溢出标志,操作数超出机器能表示的范围表示溢出,溢出时为1。SF:符号标志记录运算结果的符号,结果负时为1。ZF:零标志运算结果等于0时为1,否则为0。CF:...

DI汇编语言
DI汇编语言中,DI(Destination Index Register)和SI(Source Index Register)是两个关键的变址寄存器。它们在指令执行时,用于存储操作数的地址。例如,指令 MOV [DI], AX 中,地址被置于DI或SI寄存器中,汇编程序会将寄存器的地址值写入指令的地址码部分。在机器运行时,根据地址码,它会从寄存器中获...

汇编语言每个专有名词的意思是什么啊?
指针寄存器:SP(堆栈指针),BP(基址指针)变址寄存器:SI(原地址),DI(目的地址)1、通用寄存器 数据寄存器,指针寄存器和变址寄存器统称为通用寄存器。这些寄存器除了各自专门用途外,它们均可用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果。(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.怎样根...

汇编语言中什么是基址变址寄存器?
寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。它们可作一般的存储器指针...

汇编语言中(DI)和[DI]有什么区别?
书中的定义吧。(DI)一般表示DI寄存器中的值 [DI]表示DI寄存器中的地址处的值

汇编语言中,为什么SI和DI不能同时使用
其实你可以想一下,这两个寄存器的意思,SI源变址寄存器,DI目地变址寄存器,既然是变址寄存器,那么他们肯定是在某个地址的基础上进行偏移变化,由此我们就得出了需要基址寄存器。你要是把这两个寄存器同时使用,那你地址变化的基址都没有,你该怎么变化呢?你在谁的基础上变化(也就是地址偏移)?对...

《汇编语言程序设计》复习题答案求救,分析题!高分,谢谢!
SI是源地址寄存器,DI是目的地址寄存器,就是以源地址寄存器[SI]开始的64H个字节里面的内容,复制到以[DI]为始址的空间中去。CX是计数器嘛,就是复制64H个字节的内容,MOVSB就是MOV 以 B为单位!42答案如下:DATA SEGMENT A DW 0 B DW 0 C DW 15H,5H,50H DATA ENDS CODE SEGMENT ..MOV...

通用寄存器简介
对于16位CPU,我们有8个通用寄存器:AX, BX, CX, DX, BP, SP, SI, DI。这些寄存器功能广泛,其中AX是累加器,执行算术运算;CX作为计数器,用于循环控制;BX和BP作为基址寄存器,存储数据的起始地址;SI和DI则是变址寄存器,用于动态地址计算。此外,BP还可以作为基指针,SP则是专门的堆栈指针,...

相似回答
大家正在搜