JimmyZhang
菜鸟
posts - 7, comments - 0, trackbacks - 0, articles - 0
C++博客
首页
新随笔
联系
管理
聚合
两个多位十进制数相乘,并将结果送屏幕显示
;
两个多位十进制数相乘,并将结果送屏幕显示
DATAS SEGMENT
X DB
4
,
5
,
6
,
7
;
定义被乘数
N1 EQU $-X
Y DB
1
,
2
,
3
,
4
;
定义乘数
N2 EQU $-Y
Z DB 30H DUP(?)
P DB '4567X1234
=
'
Q DB 30H DUP(?)
DATAS ENDS
STACKS SEGMENT STACK 'STACK'
DW 50H DUP(?)
TOP LABEL WORD
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES
,
DS:DATAS
,
SS:STACKS
MAIN PROC FAR
START:
MOV AX
,
DATAS
MOV DS
,
AX
MOV AX
,
STACKS
MOV SS
,
AX
MOV SP
,
OFFSET TOP
MOV CL
,
4
MOV SI
,
0
MOV BX
,
N2
LOOP1:
MOV CH
,
Y
[
BX-1
]
CALL MMUL
INC SI
DEC BX
JNZ LOOP1
MOV SI
,
DX
MOV BX
,
0
ASC:
MOV AL
,
Z
[
SI
]
AND AL
,
0FH
OR AL
,
30H
MOV Q
[
BX
]
,
AL
INC BX
DEC SI
CMP SI
,
0
JNL ASC
MOV Q
[
BX
]
,
'$'
DISP:
MOV AH
,
9
MOV DX
,
OFFSET P
INT 21H
MOV AH
,
4CH
INT 21H
RET
MAIN ENDP
MMUL PROC NEAR
;
两个多位十进制数相乘,并输出结果
PUSH SI
PUSH BX
MOV BX
,
N1
LOOP2:
MOV AL
,
X
[
BX-1
]
CALL MULS
CALL DOUT
INC SI
DEC BX
JNZ LOOP2
POP BX
POP SI
RET
MMUL ENDP
MULS PROC NEAR
PUSH BX
MOV BL
,
CH
AND AL
,
0FH
AND BL
,
0FH
MUL BL
AAM
POP BX
RET
MULS ENDP
DOUT PROC NEAR
PUSH SI
NEXT:
ADD AL
,
Z
[
SI
]
AAA
MOV Z
[
SI
]
,
AL
MOV AL
,
AH
XOR AH
,
AH
INC SI
MOV DX
,
SI
CMP AL
,
0
JNZ NEXT
POP SI
RET
DOUT ENDP
CODES ENDS
END START
Posted on 2010-11-02 16:02
JimmyZhang
阅读(642)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2008年12月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
2010年11月 (4)
2010年10月 (1)
2009年1月 (1)
2008年12月 (1)
搜索
最新评论
阅读排行榜
1. STL中Map的部分用法笔记(682)
2. 两个多位十进制数相乘,并将结果送屏幕显示(642)
3. 子程序名:B2TOBCD(214)
4. Prim笔记(176)
5. 练习使用模板的Helloworld(162)
评论排行榜
1. Prim笔记(0)
2. STL中Map的部分用法笔记(0)
3. 子程序名:B2TOBCD(0)
4. 子程序名:AS2BIN(0)
5. 两个多位十进制数相乘,并将结果送屏幕显示(0)