A SERVICE OF

logo

ARCHITECTURE AND INSTRUCTIONS
Sample Two:
Add
two unpacked BCD (ASCII)
together.
MY_DATA
SEGMENT
STRING_1
DB
STRING_2
DB
MY_DATA
ENDS
MY_CODE
SEGMENT
ASSUME
GO: MOV
MOV
MOV
CLC
CLD
MOV
MOV
MOV
JCXZ
CYCLE:
LODS
ADC
AAA
STOS
LOOP
FINISH:
HLT
MY-CODE
ENDS
END
Sample Three:
Decimal multiplication algorithm.
MY_DATA
A
B
C
MY_DATA
MY_CODE
GO:
CYCLE:
FINISH:
MY-CODE
SEGMENT
DB
DB
DB
ENDS
SEGMENT
ASSUME
MOV
MOV
CLD
MOV
MOV
MOV
AND
MOV
JCXZ
LODS
AND
MUL
AAM
ADD
AAA
STOS
MOV
LOOP
HLT
ENDS
END
strings
'1','7','5','2'
'3','8','1','4'
CS:MY-CODE, DS:MY-DATA
AX,MY-DATA
DS,AX
ES,AX
SI,OFFSET STRING_1
DI,OFFSET STRING_2
CX,LENGTH STRING_1
FINISH
STRING_1
AL,[DI]
STRING_2
CYCLE
GO
'3','7','5','4','9'
'6'
LENGTH (A) DUP
(7)
CS:MY
_CODE,DS:MY
_DATA
AX,
MY_DATA
ES,AX
SI,OFFSET
A
DI,OFFSET C
CX,LENGTH A
B,OFH
BYTE PTR [SI].O
FINISH
A
AL,OFH
AL,B
AL,[DI]
C
[DI].AH
CYCLE
GO
2-41
;value is
2571
;value
is
4183
;establish data segment
;no carry
initially
;forward strings
;establish string pointers
;get
STRING_1
element
;add
STRING_2
element
;correct
for
ASCII
;result into STRING_2
;repeat for entire element
;establish data segment
;forward strings
;establish pointers
;establish count
;clear upper half of b
;clear c[l]
;get
ali]
;clear its high-order bits
;multiply
by
b
;correct
for
ASCII
;add to
c[i]
;adjust
for
ASCII
;store in
c[i]
;,
..
and
c[l]
;repeat
for
entire string