码迷,mamicode.com
首页 > 编程语言 > 详细

02_汇编语言(子程序设计01_基本输入输出函数模板)

时间:2015-04-21 22:04:53      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

程序要求:

  DATA中含一个变量,写一个INPUT方法实现从命令行输入一个数NUM(0<=NUM<=65535),用OUTPUT方法输出这个数。

目的:

  INPUT函数模板

  OUTPUT函数模板

代码实现:

 

 1 ;例题:DATA中含一个变量,写一个INPUT方法实现从命令行输入一个数,用OUTPUT方法输出这个数
 2 STACK SEGMENT STACK STACK
 3     STAK DW 256 DUP(?)
 4 STACK ENDS
 5 
 6 DATA SEGMENT
 7     NUM DW ?
 8 DATA ENDS
 9 
10 CODE SEGMENT
11     ASSUME CS:CODE,DS:DATA,SS:STACK
12 MAIN PROC
13 START:  MOV AX,DATA
14         MOV DS,AX
15         XOR AX,AX  ;AX置0
16         CALL INPUT
17         CALL OUTPUT
18         MOV AH,4CH
19         INT 21H
20 MAIN ENDP
21 
22 INPUT PROC  ;入口参数:无     出口参数:BX(因此不能超过65535)
23         PUSH AX
24         PUSH CX
25         PUSH DX
26         PUSH SI  ;保存乘数
27         XOR BX,BX
28         XOR CX,CX
29         XOR DX,DX
30         MOV SI,10
31 NEXT:   MOV AH,01
32         INT 21H        ;接收键盘的数字
33         CMP AL,0DH    ;判断是否是回车
34         JZ DONE     ;JZ:等于则跳转
35         CMP AL,0
36         JB ERROR1    ;JB:小于则跳转
37         CMP AL,9
38         JA ERROR1    ;JA:大于则跳转
39         SUB AL,30H    ;将ASCII码字符变为对应的数字
40         MOV CL,AL
41         MOV AX,BX
42         MUL SI
43         ADD AX,CX
44         MOV BX,AX
45         JMP NEXT     ;继续接收下一个数据
46 ERROR1: MOV BX,0FFFFH
47         JMP EXIT
48 DONE:   MOV DL,0AH
49         MOV AH,02
50         INT 21H        ;输出回车
51         MOV DL,0DH
52         MOV AH,02
53         INT 21H
54 EXIT:   POP SI
55         POP DX
56         POP CX
57         POP AX
58         RET        ;子程序返回
59 INPUT ENDP
60 
61 OUTPUT PROC NEAR ;入口参数:BX       出口参数:无
62         PUSH AX        ;保护寄存器
63         PUSH BX
64         PUSH CX
65         PUSH DX
66         PUSH SI
67         MOV SI,10    ;SI中是除数
68         XOR CX,CX
69         MOV AX,BX    ;入口参数在BX中
70 NEXT1:  MOV DX,0    ;DX存放余数,清零
71         DIV SI        ;AX和DX组成的32位除以16位的SI,商保存在AX中,余数保存在DX中
72         PUSH DX
73         INC CX        ;CX++,CX记录有多少位
74         CMP AX,0
75         JNZ NEXT1    ;JNZ 不等于则跳转
76 OUTP:   POP DX        ;余数出栈
77         ADD DL,30H
78         MOV AH,2
79         INT 21H
80         LOOP    OUTP
81         POP SI        ;恢复寄存器
82         POP DX
83         POP CX
84         POP BX
85         POP AX
86         RET        ;子程序返回
87 OUTPUT ENDP
88 CODE ENDS
89 END START

 

02_汇编语言(子程序设计01_基本输入输出函数模板)

标签:

原文地址:http://www.cnblogs.com/ruo-yu/p/4445293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!