DAS - 減之後 AL 十進制調整

操作碼

指令

說明

2F

DAS

執行減法之後,對 AL 進行十進制調整

說明

調整兩個壓縮 BCD 值相減的結果,以產生壓縮 BCD 結果。AL 暫存器是隱含的源運算元與目標運算元。DAS 指令僅用在特定的 SUB 指令之後,該指令將兩個 2 位壓縮 BCD 值相減(二進制減法),並將位元組結果儲存到 AL 暫存器。接著,DAS 指令調整 AL 暫存器的內容,使之包含正確的 2 位壓縮 BCD 結果。如果檢測到十進制借位,則相應地設定 CF 與 AF 標誌。

操作

IF (AL AND 0FH) > 9 OR AF 1
THEN
AL AL - 6;
CF CF OR BorrowFromLastSubtraction; (* CF OR borrow from AL AL - 6 *)
AF 1;
ELSE AF 0;
FI;
IF ((AL > 9FH) or CF 1)
THEN
AL AL - 60H;
CF 1;
ELSE CF 0;
FI;

示例

SUB AL, BL Before: AL=35H BL=47H EFLAGS(OSZAPC)=XXXXXX
After: AL=EEH BL=47H EFLAGS(0SZAPC)=010111
DAA Before: AL=EEH BL=47H EFLAGS(OSZAPC)=010111
After: AL=88H BL=47H EFLAGS(0SZAPC)=X10111

影響的標誌

如果調整結果值時導致結果中的任何數字產生十進制借位,則設定 CF 與 AF 標誌(請參閱上面的“操作”部分)。SF、ZF 及 PF 標誌根據結果設定。OF 標誌未定義。

異常(所有操作模式)

無。