跳至內容

360 彙編/360 指令/AL

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

AL - 邏輯加 - 操作碼 5E

AL 2,N2
AL 11,106(0,10)

具體的語法是

AL 目標暫存器,偏移量(索引暫存器,基址暫存器)

如果使用了 USING 偽指令,並且目標地址標籤位於某個基址暫存器值的 4096 位元組內,那麼彙編器將自動確定偏移量索引暫存器基址暫存器的值。

RX 指令 (4 位元組)
位元組 1 位元組 2 位元組 3 和 4
目標暫存器 源地址
(8 位)
操作碼
5E
(4 位)

0..F
(4 位)
索引
暫存器

0..F
(4 位)
基址
暫存器

0..F
(12 位)
偏移量
0..FFF
  • 第一個引數是目標暫存器,它在操作之前包含第一個加數,在操作之後包含結果。
  • 第二個引數是源值(第二個加數)的位置。
  • 掩碼基址暫存器索引暫存器的值為 0 到 15。偏移量值為 0 到 4095。

可用性

[編輯 | 編輯原始碼]

AL 指令在所有型號的 360、370 和 z/System 上都可用。

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

源引數地址應與字邊界對齊(即 4 位元組)。

條件程式碼

[編輯 | 編輯原始碼]

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

異常和故障

[編輯 | 編輯原始碼]
  • 源地址必須在有效記憶體範圍內,否則會發生操作異常。
  • 源地址的儲存金鑰必須與當前程序相同,否則會發生記憶體保護違規異常。

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

[編輯 | 編輯原始碼]
  • 要從暫存器中邏輯加值,請參見 ALR
  • 要從記憶體中算術加值,請參見 A
  • 要減去整數,請參見 SSRSHSLSLR
  • 要檢查條件程式碼,請參見 BCBCR
上一條指令
AHI
360 彙編指令
{{{name}}}
下一條指令
ALC
上一條操作碼
5D
下一條操作碼
5F
360 組合語言
360 家族 簡介 · 基本常見問題解答 · 360 家族 · 360 架構
360 指令集 360 指令 · 分支指令 · 資料傳輸指令 · 控制流指令 · 算術指令 · 邏輯指令 · 移位和旋轉指令 · 特權指令 · 其他指令
語法和彙編器 360 彙編器· 偽指令
指令擴充套件 浮點 · 高階語言


華夏公益教科書