跳轉到內容

360 彙編/360 指令/SR

來自華夏公益教科書

SR - 減去暫存器 - 操作碼 1B

SR 2,1

具體的語法是

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

0..F
(4 位)

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

可用性

[編輯 | 編輯原始碼]

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

SR 指令從第二個引數指定的暫存器中讀取 32 位整數,並將其從第一個引數指定的暫存器值中減去。執行指令後,第一個引數指定的暫存器將儲存操作結果。程式狀態字中的條件程式碼欄位會根據結果值進行更改。

此指令也可以用於使兩個暫存器引數相同以將該暫存器清零。如果 XR 指令中的兩個引數是同一個暫存器,則會發生相同的功能。

條件程式碼

[編輯 | 編輯原始碼]

如果發生有符號整數溢位,即差值不在 -2**31 和 2**31-1 之間,則 CC 設定為 3。否則,CC 設定為 0、1 或 2,如果差值分別等於零、小於零或大於零。

異常和故障

[編輯 | 編輯原始碼]
  • 如果檢測到有符號整數溢位並且 PSW 中的位 36 設定,則會發生操作異常。
[編輯 | 編輯原始碼]
  • 要從 z/Series 上兩個暫存器的完整 64 位雙字中減去雙字值,請參見 SGR.
  • 要從 z/Series 上另一個暫存器的完整 64 位雙字中減去字值,請參見 SGFR.
  • 要從 z/Series 上記憶體中的 64 位雙字中減去完整 64 位雙字暫存器,請參見 SG.
  • 要從 z/Series 上記憶體中的 32 位字中減去完整 64 位雙字暫存器,請參見 SGF.
  • 要從記憶體中減去字值,請參見 S.
  • 要從記憶體中減去半字值,請參見 SH.
  • 要減去值並根據無符號算術設定條件程式碼,或者新增多字整數的最重要部分,請參見 SLSLR.
  • 要減去 32 位字浮點值,請參見 SESERSDSDR.
  • 要新增 32 位字整數,請參見 ARAAHALALR.
  • 要檢查條件程式碼,請參見 BCBCR.
上一條指令
SQXR
360 彙編指令
{{{name}}}
下一條指令
SRA
上一個操作碼
1A
下一個操作碼
1C
360 組合語言
360 系列 簡介 · 常見問題解答 · 360 系列 · 360 架構
360 指令集 360 指令 · 分支指令 · 資料傳輸指令 · 控制流指令 · 算術指令 · 邏輯指令 · 移位和旋轉指令 · 特權指令 · 其他指令
語法和彙編器 360 彙編器· 偽指令
指令擴充套件 浮點 · 高階語言


華夏公益教科書