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 汇编器 伪指令 | |
地址相关 | ADATA • CNOP • DROP • EQU • LOCTR • LTORG • ORG • USING |
---|---|
代码相关 | ALIAS • AMODE • CATTR • COM • CSECT • CXD • DSECT • DXD • END • ENTRY • EXTRN • OPSYN • RMODE • RSECT • START • WXTRN • XATTR |
数据相关 | CCW • CCW0 • CCW1 • DC • DS |
条件汇编和宏相关 | ACTR • AGO • AIF • AINSERT • ANOP • AREAD • COPY • GBLA / GBLB / GBLC • LCLA / LCLB / LCLC • MACRO • MEND • MEXIT • MNOTE • SETA / SETB / SETC |
清单、输出和源代码相关 | 注释 • *PROCESS • ACONTROL • EJECT • END • EXITCTL •ICTL • ISEQ • POP • PRINT • PUNCH • PUSH • REPRO • SPACE • TITLE |
360 汇编语言 | |
360 家族 | 简介 · 基本常见问题解答 · 360 家族 · 360 架构 |
---|---|
360 指令集 | 360 指令 · 分支指令 · 数据传送指令 · 控制流指令 · 算术指令 · 逻辑指令 · 移位和旋转指令 · 特权指令 · 其他指令 |
语法和汇编器 | 360 汇编器· 伪指令 |
指令扩展 | 浮点数 · 高级语言 |