汇编语句的解释!

汇编语句的解释!,第1张

cld一般在串 *** 作时用的,用来设定串的顺序。比如说下仿唯面这几句

mov cx,16

cld

rep mosb 表示将从ds:si开始到ds:(si+15)这16个字节搬到es:di开始的内存中去。如果把cld改成std则表示将从ds:si开始到ds:(si-15)这16个字节搬到es:di开顷大启始的内存雀如中去。

ret表示子程序返回,endp是伪指令,表示子程序结束

子程序的调用和返回是一对互逆 *** 作,也是一种特殊的转移 *** 作。

一方面,之所以说是转移,是因为当调用一个子程序时,程序的执行顺序被改变,CPU将转而信哪执行滑念码子程序中的高亮指令序列,在这方面,调用子程序的 *** 作含有转移指令的功能,子程序的返回指令的转移特性与此类似;

另一方面,转移指令是一种“一去不复返”的 *** 作,而当子程序完后,还要求CPU能转而执行调用指令之下的指令,它是一种“有去有回”的 *** 作。

为了满足子程序调用和返回 *** 作的特殊性,在指令系统中设置了相应的特定指令。

调用指令(CALL)

调用子程序指令的格式如下:

CALL 子程序名/Reg/Mem

子程序的调用指令分为近(near)调用和远(far)调用。如果被调用子程序的属性是近的,那么,CALL指令将产生一个近调用,它把该指令之后地址的偏移量(用一个字来表示的)压栈,把被调用子程序入口地址的偏移量送给指令指针寄存器IP即可实现执行程序的转移。近调用指令的堆栈 *** 作.

如果被调用子程序的属性是远的,那么,CALL指令将产生一个远调用。这时,调用指令不仅要把该指令之后地址的偏移量压进栈,而且也要把段寄存器CS的值压进栈。在此之后,再把被调用子程序入口地址的偏移量和段值分别送给IP和CS,这样完成了子程序的远调用 *** 作。远调用指令的堆栈 *** 。

子程序调用指令本身的执行不影响任何标志位,但子程序体中指令的执行会改变标志位,所以,如果希望子程序的执行不能改变调用指令前后的标志位,那么,就要在子程序的开始处保护标志位,在子程序的返回前恢复标志位。

例如:

CALL DISPLAYDISPLAY是子程序名

CALL BXBX的内容是子程序的偏移量

CALL WORD1WORD1是内存字变量,其值是子程序的偏移量

CALL DWORD1DWORD1是双字变量,其值是子程序的偏移量和段值

CALL word ptr [BX]BX所指内存字单元的值是子程序的偏移量

CALL dword ptr [BX]BX所指内存双字单元的值是子程序的偏移量和段值

汇编中ret的作用:

从堆栈中退出pc的高8位和低8位字节,把堆栈指针悔散减2,从pc值处开始继续执行程序。不影响任何标志。

例子:

;主程序

MAIN:SETB P1.0 (1)开始主程序,P1.0口置1(P1.0 口输出为高,可以控制LED点亮)

LCALL DELAY (2)此时当前堆栈指针加2 ,调用(6)DELAY延租前核时子程序

CLR P1.0 (3)P1.0口清零(P1.0 口输出为低,可以控制LED熄灭)

LCALL DELAY (4)此时当前堆栈指针加2 ,调用(6)DELAY延时子程序弊掘

LJMP MAIN (5)跳转到主程序,这样LED实现循环点亮

;子程序

DELAY:MOV R7,#250 (6)250-->R7

D1:MOV R6,#250 (7)250--->R6

D2:DJNZ R6,D2 (8)(R6-1),等于零执行下一条,不等于零,则跳转到D2

DJNZ R7,D1 (9)(R7-1),等于零执行下一条,不等于零,则跳转到D1

RET (10)当前堆栈指针减2,返回到(3)CLR P1.0继续执行MAIN 主程序。

END . (11)程序结束(伪指令)

扩展资料:

RET是子程序的返回指令,此外,ret还是检测血液的时候的一项,现在常规医院都有的实验室项目。

RET(Resolution Enhancement Technology)是分辨率增强技术的意思。

有RET功能的打印机,可以使打印出来的图形几乎没有锯齿,一台400×400DPI的激光打印机,如果有RET功能,其打印效果可以与600×600DPI的激光打印机想媲美。

(SP)->PCH,然后(SP)-1->SP

(SP)->PCL,然后(SP)-1->SP

参考资料:百度百科 ------ ret


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12455645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存