汇编语言中, 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、因为机器的特殊性造成了代码兼容性差的缺陷。

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




田东县15782121044: 汇编语言中,SI DI 的作用是什么? -
崔券因力: SI是源变址寄存器,用于存放源操作数的偏移地址,并且SI的内容有自动修改的功能,故称为源变址寄存器.DI是目的寄存器,用于存放目的操作数的偏移地址,并且DI的内容有自动修改的功能,故称为目的变址寄存器.

田东县15782121044: 汇编语言中“SP”“BP” “SI”“DI”的作用? -
崔券因力: SP 是堆栈指针,当你使用PHSU语句的时候就发现有变化 BP是辅助,在特殊时候用 SI,DI是一组指针 当你需要拷贝一组内存的数据的时候 一般是SI是源数据指针,DI是目的地址指针 CX是计数器. 汇编语言(assembly language)是一种用于...

田东县15782121044: 汇编中[SI]和SI的区别 -
崔券因力: [SI]是寄存器间接寻址,它是指SI中地址的内容如movsi,2000movax,[si]//将2000地址中的内容赋给ax而SI,寄存器寻址方式,就是指SI本身的内容如movsi,2000movax,si//将SI中的内容2000赋给ax

田东县15782121044: 汇编语言中,为什么SI和DI不能同时使用 -
崔券因力: 当时的8086可能是考虑到硬件设计难度或者是指令格式的原因,所以不允许那样使用.后来的CPU就没有那么多的限制了,比如386以上的CPU esi和edi就可以同时使用了

田东县15782121044: 汇编语言加中括号表示什么? -
崔券因力: 一般说来,加方括号 [ ] 表示一种间接的取操作数方式,有点类似于C语言中的指针概念.第一条指令 ADD AL , [SI] 中,[SI] 表示寄存器间接寻址. 也就是说,与AL中内容相加的加数,不是SI寄存器的内容,而是以SI的内容作为地址指针的内存...

田东县15782121044: 在线等,急急急..汇编关于串指令中SI的用法.请各位大侠帮帮忙啊.明天要考试了. -
崔券因力: cld,是将df置零,地址是递增的,movsb指令执行完之后,si,di都自动加一(df=1,时减1),因为si指向的是str1最后一个字符,是从后往前减,因为movsb指令让si加1了,所以要实现减1,就得减上2(我认为lea si,str1+11,应为lea si,str1+10,这样si才指向str1中的最后一个字符L) 明白否?祝你考试顺利

田东县15782121044: 在汇编语言的串操作中, MOV DI, DS MOV ES, DI 这两条指令到底有什么作用? -
崔券因力: (1)这两条指令没有上下文的情况下,无法为您判断它们的实际意义.看不出与串操作有什么直接关系.在串操作中,一般是将两个串分别放在DS:SI和ES:DI寻址的内存单元中,以方便于串的比较、移动等操作.(2)mov si,ds指令的意义是:将数...

田东县15782121044: 汇编语言 mov ax,word ptr [ si ] [ di ] 这条语句为什么有错误
崔券因力: si、bx均可作为源数据的偏移与ds段地址配合使用;di、bx均可作为目的数据的偏移与es段地址配合使用 即si指向源,di指向目的,si、di不能出现的一个偏移地址中 !!!

田东县15782121044: 汇编语言中寄存器的英文全称 -
崔券因力: AH&AL=AX(accumulator):累加寄存器 BH&BL=BX(base):基址寄存器 CH&CL=CX(count):计数寄存器 DH&DL=DX(data):数据寄存器 SP(Stack Pointer):堆栈指针寄存器 BP(Base Pointer):基址指针寄存器 SI(Source Index):源变址寄存器...

田东县15782121044: 汇编中 inc si 的意思是si 的值加1还是2?si di 寄存器不是16位寄存器吗?如题,SI DI 不可分为2个8位寄存器,那么能用INC SI 要是它的值+2,是不是和 ADD ... -
崔券因力:[答案] inc 寄存器或内存操作数加1 不管是多少位寄存器 不管是什么长度的内存 都是+1 不知道你是怎么理解的

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网