一些简单的汇编程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.编制程序计算S=1+2+3+4+……+N直到和大于500为止,并将结果在屏幕上显示出来(N的值和最终的和的值)。
DATA SEGMENT
N DW?
SUM DW?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV BL,0
E1: INC BL
ADD AX,BX
CMP AX,500
JBE E1
MOV [N],BX
MOV [SUM],AX
E2:
MOV AX,BX
MOV BL,10
DIV BL
ADD AL,30H
MOV DL,AL
MOV CL,AH
MOV AH,2
INT 21H
ADD CL,30H
MOV DL,CL
MOV AH,2
INT 21H
MOV AH,2
MOV DL,0AH
INT 21H
MOV AX,SUM
CWD
MOV BX,100
DIV BX
MOV CX,DX
ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
MOV BL,10
MOV AX,CX
DIV BL
MOV CL,AH
MOV AH,2
ADD AL,30H
MOV DL,AL
INT 21H
MOV AH,2
ADD CL,30H
MOV DL,CL
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
2.从键盘输入学生成绩(A、B、C、D),自动汇总并显示各类分数的人数。按下$键则停止输入;若按下A、B、C、D之外的键则提示“INPUT ERROR”信息。
DATA SEGMENT
M1 DB'Please input
A,B,C,D:',13,10,'$'
M2 DB 13,10,'Input error!
',13,10,'$'
M3 DB 13,10,'The number of A is: $' M4 DB 13,10,'The number of B is: $' M5 DB 13,10,'The number of C is: $' M6 DB 13,10,'The number of D is: $'
DATA ENDS
STACK SEGMENT
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START:
MOV AX,DATA
MOV DS,AX
MOV AH,9
MOV DX,OFFSET M1
INT 21H
MOV BX,0
MOV CX,0
E1:
MOV AH,1
INT 21H
MOV AH,41H
CMP AL,AH
JNZ E2
INC BL
JMP E1
E2:
MOV AH,42H
CMP AH,AL
JNZ E3
INC BH
JMP E1
E3:
MOV AH,43H
CMP AH,AL
JNZ E4
INC CL
JMP E1
E4:
MOV AH,44H
CMP AH,AL
JNZ E5
INC CH
JMP E1
E5:
MOV AH,24H
CMP AH,AL
JZ E6
MOV AH,9
MOV DX,OFFSET M2 INT 21H
JMP E1
E6:
MOV AH,9
MOV DX,OFFSET M3
INT 21H
MOV AH,2
ADC BL,30H
MOV DL,BL
INT 21H
MOV AH,9
MOV DX,OFFSET M4
INT 21H
MOV AH,2
ADC BH,30H
MOV DL,BH
INT 21H
MOV AH,9
MOV DX,OFFSET M5
INT 21H
MOV AH,2
ADC CL,30H
MOV DL,CL
INT 21H
MOV AH,9
MOV DX,OFFSET M6
INT 21H
MOV AH,2
ADC CH,30H
MOV DL,CH
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
3.动态输入20个二位无符号数,找出其中最大数并显示。DATAS SEGMENT
M1 DB'Please input 5
numbers:',13,10,'$'
M2 DB'The biggest number is:$' M3 DB' ',13,10,'$'
MAX DW?
DATAS ENDS