Please note that JavaScript and style sheet are used in this website,
Due to unadaptability of the style sheet with the browser used in your computer, pages may not look as original.
Even in such a case, however, the contents can be used safely.
FAQ-ID : 78prog-nnnn
FAQ-ID : 78prog-0101Last Updated : 2006/04
FAQ-ID : 78prog-0001Last Updated : 2002/07
;
; definition of macro
;
ADJBA MACRO
CALLT [ADJBAT]
ENDM
ADJBS MACRO
CALLT [ADJBST]
ENDM
;
; definition of CALT table
;
CALTTBL CSEG AT 40H
ADJBAT: DW ADJBAS
;
; decimal adjust for addtion
;
ADJBAS: PUSH BC
MOV C,#0
BNC $NEXT0 ; IF C=1 ADJUST 60H
MOV C,#0B0H
NEXT0: BT PSW.4,$NEXT1 ; JUMP IF AC=1
MOV B,A ; SAVE DATA
AND A,#0FH ; MASK UPPER NIBBLE
CMP A,#0AH
MOV A,B ; RESTORE DATA
BC $NEXT3 ; JUMP IF NOT ADJUST
NEXT1: ADD A,#6 ; ADJUST
MOV B,A ; SAVE DATA
NEXT2: BNC $NEXT3
MOV C,#0B0H
NEXT3: CMP A,#0A0H
BC $NEXT4
MOV C,#0B0H
NEXT4: ADD A,C
ADD A,C
POP BC
RET
;
; decimal adjust for subtraction
;
ADJBSS: PUSH BC
MOV C,#0
BNC $NEXT5
MOV C,#0D0H
NEXT5: BF PSW.4,$NEXT6
SUB A,#6
NEXT6: BNC $NEXT7
MOV C,#0D0H
NEXT7: ADD A,C
ADD A,C
POP BC
RET
FAQ-ID : 78prog-0002
Void noint()
{
#asm
; Initialization of interrupt-related flag
movw ax!0
br ax
#endasm
}
Since the actual processing must be assembler-programmed,
use an assembler with #asm expanded inline.
FAQ-ID : 78prog-0003
FAQ-ID : 78prog-0004
FAQ-ID : 78prog-0005
FAQ-ID : 78prog-0007
MOV SP,#0FEFFH
instruction be used?
MOVW AX,#0FEFFH
MOVW SP,AX
FAQ-ID : 78prog-0008
FAQ-ID : 78prog-0009
FAQ-ID : 78prog-0010Last Updated : 2002/02
FAQ-ID : 78prog-0011Last Updated : 2006/04
MOV X,A ; X=Input data(offset)
SUB A,X ; A=0
ADDW AX,#table ; get Table Address
MOVW HL,AX
MOV A,[HL] ; Get data from Table
FAQ-ID : 78prog-0012Last Updated : 2006/04