用80x86汇编语言编程:键盘输入数组,再选择输出
来源:互联网 发布:知乎 神人 常凯申 编辑:程序博客网 时间:2024/06/05 17:17
从键盘输入9个十进制数(0~3位),数与数之间用空格隔开;
再输入的一个序号(1-9),则输出对应的数。输入0结束。
问题补充:输入的序号最好有提示,输出当然是十进制。
| 2011-12-7 15:51 | 悬赏分:100 |
;==============================================
最佳答案: 2011-12-8 01:43
;以上要求均已满足,程序如下:
;----------------------------------------------
DISP_STR MACRO X ;宏定义.
MOV DX, OFFSET X
MOV AH, 9
INT 21H
ENDM
;----------------------------------------------
DATA SEGMENT ;数据段.
MSG1 DB 13, 10, 'Please Input N$'
MSG2 DB 13, 10, 'I can not count so much ! $'
MSG3 DB 13, 10, 'Please Input NUM (1~9, 0 end):$'
IN_N1 DB 9 DUP ('$$$$')
N DB 30H ;序数.
DATA ENDS
;----------------------------------------------
CODE SEGMENT ;代码段.
ASSUME CS: CODE, DS: DATA
START:
MOV AX, DATA
MOV DS, AX
;--------------------------------
MOV BX, OFFSET IN_N1;数据
MOV CX, 9
;--------------------------------
IN_X:
PUSH CX
MOV CX, 3
DISP_STR MSG1 ;宏调用,提示 Please Input :
INC N
MOV DL, N
MOV AH, 2
INT 21H
MOV DL, ':'
MOV AH, 2
INT 21H
MOV DX, BX
;----------------------
IN_LOOP:
MOV AH, 1 ;输入字符.
INT 21H
CMP AL, ' ' ;空格?
JZ IN_Y ;本数字结束.
CMP AL, 30H
JB _IN_ERR ;小于'0',输入错误.
CMP AL, 3AH
JNB _IN_ERR ;大于'9',输入错误.
MOV [BX], AL
INC BX
MOV AX, BX
SUB AX, 2
SUB AX, DX
JA IN_Y
JMP IN_LOOP ;继续输入.
;----------------------
IN_Y:
ADD DX, 4
MOV BX, DX
POP CX
LOOP IN_X
;--------------------------------
IN_END:
DISP_STR MSG3 ;宏调用,提示 NUM is :
MOV AH, 1 ;输入字符.
INT 21H
CMP AL, 30H
JE EXIT ;'0',结束.
JB _IN_ERR ;小于'0',输入错误.
CMP AL, 3AH
JNB _IN_ERR ;大于'9',输入错误.
PUSH AX
MOV DL, 13
MOV AH, 2
INT 21H
MOV DL, 10
MOV AH, 2
INT 21H
POP AX
SUB AL, 31H
MOV BL, 4
MUL BL
MOV DX, OFFSET IN_N1
ADD DX, AX
MOV AH, 9
INT 21H
JMP IN_END
;--------------------------------
_IN_ERR:
DISP_STR MSG2 ;宏调用,提示 can not count so much !
EXIT:
MOV AH, 4CH
INT 21H
;--------------------------------
CODE ENDS
END START
;==============================================
程序运行的屏幕显示如下:
c:\masm510>Z2
Please Input N1:342
Please Input N2:45
Please Input N3:25
Please Input N4:21
Please Input N5:566
Please Input N6:32
Please Input N7:12
Please Input N8:563
Please Input N9:2
Please Input NUM (1~9, 0 end):3
25
Please Input NUM (1~9, 0 end):2
45
Please Input NUM (1~9, 0 end):1
342
Please Input NUM (1~9, 0 end):6
32
Please Input NUM (1~9, 0 end):0
c:\masm510>
;==============================================
回答者: 做而论道 | 十五级 采纳率:43% 名人 达人
提问者对于答案的评价:谢谢~
原题网址:http://zhidao.baidu.com/question/351836527.html?fr=im100008
;==============================================
- 用80x86汇编语言编程:键盘输入数组,再选择输出
- 用80x86汇编语言编程:键盘输入与显示输出
- 80x86汇编语言编程:输入格雷码、输出对应的十进制数字
- 80x86汇编语言编程:二进制输入、十进制输出
- 80x86 汇编语言编程:输入字符串,排序输出
- 80x86 汇编语言编程:输出指定行数的星号
- 80x86 汇编语言编程:有符号数输出
- 用80x86汇编语言编程:输入字符串,并把大写字符转为小写再输出
- 用80x86汇编语言编程--输入、储存与输出
- 80x86 汇编语言编程:求和
- 80x86 汇编语言编程:EXE2COM
- 80x86汇编编程:把一串字符从键盘输入,然后逆序输出
- 80x86汇编语言:输入字符串、转换、输出
- 用80x86汇编语言编程:输入后反序显示
- 用80x86汇编语言编程:分类统计字符个数
- 80x86 汇编语言编程:用 “*” 显示一个三角形
- 80x86汇编语言编程:输入0到9,输出hello world
- 80x86汇编语言编程--
- 串口通信的优化
- 基于 8086 汇编语言——减奇数法开平方
- 基于51单片机的00-99秒表--C语言
- 用80x86汇编语言,编写一个输出16进制数字的程序
- 用80x86汇编语言,编写一个判断闰年的程序
- 用80x86汇编语言编程:键盘输入数组,再选择输出
- 用80x86汇编语言编程--在10个无符号数中,找最小的偶数
- C语言编程:字符串连接
- iOS-最新iOS 9 适配中出现的坑
- 使用ViewFlipper实现页面自动切换
- C语言编程:有n个人围成一圈,顺序排号。从第一个人开始报数...
- I/O接口高低位互换
- C语言:从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置
- iOS开发之简单多语言开发