跳轉到內容

360 彙編/360 指令/ALR

來自華夏公益教科書,開放的書本,開放的世界

ALR - 新增邏輯暫存器 - 操作碼 1E

ALR 2,1

具體的語法是

ALR 目標暫存器, 源暫存器.
RR 指令 (2 位元組)
位元組 1 位元組 2
目標暫存器 源暫存器
(8 位)
操作碼
1E
(4 位)

0..F
(4 位)

0..F
  • 第一個引數是目標暫存器,其值受指令影響。
  • 第二個引數是源值暫存器。

可用性

[編輯 | 編輯原始碼]

ALR 指令在所有 360、370 和 z/System 機型上可用。

ALR 指令從第二個引數指定的暫存器中讀取 32 位整數,並將其新增到第一個引數指定的暫存器的值。33 位結果和的最低有效 32 位被放置到目標暫存器。程式狀態字中的條件程式碼欄位根據結果值(和)進行更改,該值被視為無符號整數(見下文)。

由於這是一個 32 位指令,在 zSystem 上,暫存器的高 32 位不受影響。

條件程式碼

[編輯 | 編輯原始碼]

如果和不為零,則 PSW 的 CC 欄位的最低有效位被設定為 1,否則被清除。PSW 的 CC 欄位的最高有效位保留進位位(即 33 位和的最高有效位)。

異常和故障

[編輯 | 編輯原始碼]

無。

AL 和 ALR 指令對於實現長度超過 32 位的整數加法很有用。在這種情況下,應該使用 AL 或 ALR 來計算和的所有部分(可能除了最高有效的部分),並且,如果在加法之後 CC 為 2 或 3(即發生了進位),則增加最近的更高的部分。

[edit | edit source]

16 位

[edit | edit source]
  • 要新增半字,請參閱 AH
  • 要減去半字,請參閱 SH

32 位

[edit | edit source]
  • 要從記憶體中新增邏輯字值,請參閱 AL
  • 要從記憶體中新增帶符號值,請參閱 A
  • 要從暫存器中新增帶符號值,請參閱 AR
  • 要減去邏輯值,請參閱 SLSLR
  • 要減去帶符號值,請參閱 SRS

浮點數

[edit | edit source]
  • 要新增浮點數,請參閱 AEAERADADR

條件碼

[edit | edit source]
  • 要檢查條件碼,請參閱 BCBCR
上一條指令
ALGR
360 彙編指令
{{{name}}}
下一條指令
AP
上一個操作碼
1D
下一個操作碼
1F
360 組合語言
360 系列 簡介 · 基本常見問題解答 · 360 系列 · 360 架構
360 指令集 360 指令 · 分支指令 · 資料傳輸指令 · 控制流指令 · 算術指令 · 邏輯指令 · 移位和旋轉指令 · 特權指令 · 其他指令
語法和彙編器 360 彙編器· 偽指令
指令擴充套件 浮點數 · 高階語言


華夏公益教科書