跳转到内容

360 汇编/360 指令/DROP

来自维基教科书,自由的教科书

DROP 伪指令 用于通知汇编器,在 USING 伪指令中声明的寄存器不再可用作指令的基址寄存器,并且不应用于该目的。汇编器将恢复使用在 USING 语句中声明的任何剩余寄存器,该寄存器与目标地址的偏移量最小。

DROP 伪指令的格式为

DROP register1[,register2[,...]]

Register1, register2 等可以是先前在 USING 伪指令中声明的任何通用寄存器 1 到 15。由于寄存器 0 实际上不可用作基址寄存器,因此它实际上从未在 USING 伪指令中使用,因此也不应在 DROP 伪指令中使用。

这是一个设置子程序临时基址寄存器的内联子程序示例。

为了这个例子,假设 R14 等于 14,R15 等于 15 等,以提供交叉引用 - 请参阅 EQU 汇编器伪指令)。

* some typical assembler instructions showing comments to the right
        L     R15,=A(MOVE)                    Load sub-routine address into R15                   
        BALR  R14,R15                         Go to the sub-routine ===>
*                                             ....return here with return code in R15
*
*****************************************
*  Move the input to output             *
*****************************************
MOVE    EQU   *                               Start of a sub-routine called "Move"
        USING *,R15                           Tell the assembler reg. 15 points to
*                                             this address 
        MVC   OUTPUT,INPUT                    Move the input to the output area 
        SR    R15,R15                         Clear register contents (set Return code = 0)
        BR    R14                             return to caller
        DROP  R15                             Tell assembler we are no longer using
*                                             register 15 and resume using previous register
*
TABLE   DC    C'ABCDEFGHIJKLMNOPQRSTUVWXYZ'   Table of letters of the alphabet
INPUT   DS    Cl80                            Input area
OUTPUT  DS    Cl80                            Output area

如上例所示,USING 伪指令告诉汇编器特定寄存器包含指定的地址,而 DROP 伪指令告诉汇编器该寄存器不再可用,直到在另一个 USING 伪指令中指定为止。

 
360 汇编器 伪指令
地址相关 ADATACNOPDROPEQULOCTRLTORGORGUSING
代码相关 ALIASAMODECATTRCOM CSECTCXDDSECTDXDEND ENTRYEXTRNOPSYNRMODERSECTSTARTWXTRNXATTR
数据相关 CCWCCW0CCW1DCDS
条件汇编和宏相关 ACTRAGOAIFAINSERTANOPAREADCOPYGBLA / GBLB / GBLCLCLA / LCLB / LCLCMACROMENDMEXITMNOTESETA / SETB / SETC
清单、输出和源代码相关 注释*PROCESSACONTROLEJECTENDEXITCTLICTLISEQPOPPRINTPUNCHPUSHREPROSPACETITLE
 
360 汇编语言
360 家族 简介 · 基本常见问题解答 · 360 家族 · 360 架构
360 指令集 360 指令 · 分支指令 · 数据传送指令 · 控制流指令 · 算术指令 · 逻辑指令 · 移位和旋转指令 · 特权指令 · 其他指令
语法和汇编器 360 汇编器· 伪指令
指令扩展 浮点数 · 高级语言
华夏公益教科书