360 汇编/360 指令/MVC
外观
MVC - SS - 操作码 D2 - 移动字符
MVC 指令允许将 1 到 256 个字符从内存中的一个位置移动到另一个位置。它是一个六字节的 SS(存储到存储)指令。与 360 系列一样,移动是从右到左进行的,因此第一个参数是要移动到的目标(带可选长度说明),第二个参数是要移动的源。要在一 个指令中移动超过 256 个字节,应该使用 MVCL 指令。
MVC TARGET,SOURCE MOVE SOURCE TO TARGET MVC TARGET(40),SOURCE MOVE 40 BYTES FROM SOURCE TO TARGET MVC TARGET+10(20),SOURCE+3 MOVE 20 BYTES STARTING AT SOURCE+3 TO TARGET+10 MVC 5(3,14),SOURCE MOVE 3 BYTES FROM SOURCE TO THE ADDRESS BEGINNING AT * REGISTER 14 PLUS 5
以下示例通常用于清除打印行
MVI TARGET,C' ' PUT A BLANK AT THE BEGINNING OF THE LINE MVC TARGET+1(132),TARGET MOVES THE FIRST BLANK TO CHARACTER 2, WHICH MOVES TO CHAR. 3, THEN 4 AND SO ON
- MVC D1(L,B1),D2(B2)
其中
- D1 是从基址寄存器 B1 开始的偏移量,是目标地址
- D2 是从基址寄存器 B2 开始的偏移量,是源地址
- L 是从源到目标移动的字节数,有效值为 1 到 256。
SS 指令(6 字节)以十六进制表示 | |||||||
---|---|---|---|---|---|---|---|
字节 1 | 字节 2 | 字节 3 | 字节 4 | 字节 5 | 字节 6 | ||
(8 位) | (8 位) | (字节 3 的前 4 位) | (字节 3 的后 4 位) | (8 位) | (字节 5 的前 4 位) | (字节 5 的后 4 位) | (8 位) |
操作码 D2 |
L-1 | B1 | D1 (12 位) | B2 | D2 (12 位) |
MVC 指令不应被视为 NOP,因此必须移动至少一个字节。由于 1 字节长度值只能包含 0 到 255 的值,因此插入指令中的 要移动的长度比源代码中的实际 L 值少 1,或者说,实际要移动的长度比指令中存储的长度字段多 1。
MVC 指令在所有型号上都可用。
MVC 指令可用于移动 1 到 256 个字节的数据。 MVCL 指令在 370 及更高版本 的机器上可用,用于移动更大容量的数据。
当程序需要将字符串从一个位置移动到另一个位置时。如果未指定长度,汇编器将使用指定的目标字段长度。如果目标 长度超过 256 个字节,汇编器将发出错误标志。可以移动的最小长度为一个字节。
右操作数中指定的地址中的字符字符串将被移动到左操作数中指定的地址中,长度为指定的长度。字节一次移动一个。
- 保护异常 - 源或目标超出分配给此任务的合法地址范围
上一个指令 MSTA |
360 汇编指令 | 下一个指令 MVCDK |
上一个操作码 D1 |
下一个操作码 D3 |
360 汇编语言 | |
360 家族 | 简介 · 基本常见问题解答 · 360 家族 · 360 架构 |
---|---|
360 指令集 | 360 指令 · 分支指令 · 数据传输指令 · 控制流指令 · 算术指令 · 逻辑指令 · 移位和旋转指令 · 特权指令 · 其他指令 |
语法和汇编器 | 360 汇编器· 伪指令 |
指令扩展 | 浮点数 · 高级语言 |