跳轉到內容

360 彙編/360 指令/DR

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

DR - 除以暫存器 - 操作碼 1D

DR 2,7

具體的語法是

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

0..F
(4 位)

0..F
  • 第一個引數是一個包含較少對目標暫存器的數字,其值受指令影響。
  • 第二個引數是源值暫存器。

可用性

[編輯 | 編輯原始碼]

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

DR 指令將被除數 - 儲存在 T 和 T+1 暫存器對中的 64 位有符號值(其中 T 是目標暫存器號,T 應包含最高有效位,T+1 應包含最低有效位)除以除數 - 源暫存器中的 32 位有符號值。目標暫存器號 T 應為偶數。該指令將商放入暫存器 T,並將餘數放入暫存器 T+1,兩者均為 32 位有符號值。

除數不應為零。商應符合 32 位有符號值的限制(-2147483648 到 2147483647)。

DR 指令執行所謂的 T 除法,當商被截斷為零時;餘數符號等於被除數符號,如果兩個值都不等於 0;換句話說,(餘數 * 被除數 >= 0)。

程式狀態字中的條件碼欄位不會改變。

異常和故障

[編輯 | 編輯原始碼]
  • 如果將奇數暫存器號指定為目標暫存器,則會發生操作異常。
  • 如果除數為零,則會發生操作異常。
  • 如果檢測到有符號整數溢位並且 PSW 中的第 36 位被設定,則會發生操作異常。

假設暫存器 4 包含 0,5 - 13 和 11 - 4。指令 "DR 4,11" 將 13 暫存器的內容除以 4,將商(等於 3)放入 4 暫存器,並將餘數(等於 1)放入 5 暫存器。

[編輯 | 編輯原始碼]
  • 要除以記憶體中的字值,請參見 D
  • 要乘以暫存器中的字值,請參見 MR
  • 要從暫存器中減去字值,請參見 SR
  • 要新增值並根據無符號算術設定條件碼,或新增多字整數值的非最高有效位,請參見 ALALR
  • 要除以浮點數,請參見 DERDDRDEDD
上一條指令
DP
360 彙編指令
{{{name}}}
下一條指令
DSG
上一個操作碼
1C
下一個操作碼
1E
360 組合語言
360 系列 介紹 · 基本常見問題解答 · 360 系列 · 360 架構
360 指令集 360 指令 · 分支指令 · 資料傳輸指令 · 控制流指令 · 算術指令 · 邏輯指令 · 移位和旋轉指令 · 特權指令 · 其他指令
語法和彙編器 360 彙編器· 偽指令
指令擴充套件 浮點 · 高階語言


華夏公益教科書