Instruction Set
4-46
DAS
DAS
Flag Settings After Instruction
Examples
This example subtracts two 3-byte packed decimal numbers.
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Processor Status
Flags Register
reserved
OF DF
IF TF SF ZF
AF
PF
CF
? = undefined; – = unchanged
AF=1 if carry or borrow to low nibble
AF=0 otherwise
PF=1 if low byte of result has even number of set bits
PF=0 otherwise
CF=1 for carry or borrow to high-order bit
CF=0 otherwise
?
–
–
–
res
res
res
SF=1 if result is 0 or positive
SF=0 if result is negative
ZF=1 if result equal to 0
ZF=0 if result not equal to 0
PBCD1
DB
24h,17h,08h
; 241708 packed BCD
PBCD2
DB
19h,30h,11h
; 193011 packed BCD
; multibyte packed decimal subtraction: PBCD1 = PBCD1 - PBCD2
; subtract right bytes
MOV
AL,PBCD1 + 2
SBB
AL,PBCD2 + 2
DAS
MOV
PBCD1 + 2,AL
; subtract next bytes
MOV
AL,PBCD1 + 1
SBB
AL,PBCD2 + 1
DAS
MOV
PBCD1 + 1,AL
; subtract left bytes
MOV
AL,PBCD1
SBB
AL,PBCD2
DAS
MOV
PBCD1,AL
; if CF is 1, the last subtraction generated a borrow
JC
INVALID
; result is an error
JMP
CONTINUE
INVALID:
...
CONTINUE:
...
Содержание Am186 Series
Страница 1: ...Am186 and Am188 Family Instruction Set Manual February 1997...
Страница 10: ...Table of Contents x...
Страница 18: ...Programming 1 8...
Страница 40: ...Instruction Set Listing 3 14...