一些简单的汇编程序.docx
文本预览下载声明
1.编制程序计算S=1+2+3+4+……+N直到和 大于500为止,并将结果在屏幕上显示出来 (N的值和最终的和的值)。
DATA SEGMENT
N DW ?
SUM DW ?
MOV
DIV
MOV
ADD
MOV
MOV
BX,100
,DX
AL,30H
DL,AL
AH,2
DATA ENDS
INT 21H
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV
MOV
DIV
MOV
MOV
BL,10
,CX
,AH
AH,2
MOV
MOV
,0
,0
ADD
MOV
AL,30H
DL,AL
E1: INC
ADD
BL
AX,BX
INT 21H
CMP
AX,500
MOV
AH,2
JBE E1
ADD
CL,30H
MOV
[N],BX
MOV
DL,CL
MOV
[SUM],AX
INT 21H
E2:
MOV AH,4CH
MOV AX,BX
MOV BL,10
DIV BL
INT 21H
CODE ENDS
END START
ADD
MOV
MOV
MOV
AL,30H
DL,AL
CL,AH
AH,2
2.从键盘输入学生成绩(A、B、C、D),自 动汇总并显示各类分数的人数。按下$键则 停止输入;若按下A、B、C、D之外的键则 提示“INPUT ERROR”信息。
INT 21H
DATA SEGMENT
M1 DB Please input
ADD
MOV
MOV
,30H
,CL
AH,2
A,B,C,D:,13,10,$
M2 DB 13,10,Input error! ,13,10,$
INT 21H
M3 DB 13,10,The number of A is:
$
MOV
AH,2
M4 DB 13,10,The number of B is:
MOV
DL,0AH
INT 21H
$
M5 DB 13,10,The number of C is:
MOV
AX,SUM
$
CWD
M6 DB 13,10,The number of D is:
$
DATA ENDS
STACK SEGMENT
STACK ENDS
CMP AH,AL
JZ E6
MOV AH,9
MOV DX,OFFSET
INT 21H
JMP E1
M2
CODE SEGMENT
E6:
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,9
MOV DX,OFFSET
INT 21H
MOV AH,2
ADC BL,30H
MOV DL,BL
INT 21H
MOV AH,9
MOV DX,OFFSET
INT 21H
M3
M4
MOV
AH,1
MOV AH,2
INT 21H
ADC BH,30H
MOV
CMP
AH,41H
AL,AH
MOV DL,BH
INT 21H
JNZ E2
MOV AH,9
INC
BL
MOV DX,OFFSET
M5
JMP E1
INT 21H
E2:
MOV AH,2
MOV
CMP
AH,42H
AH,AL
ADC CL,30H
MOV DL,CL
JNZ E3
INT 21H
INC
BH
MOV AH,9
JMP E1
MOV DX,OFFSET
M6
E3:
INT 21H
MOV
CMP
AH,43H
AH,AL
MOV AH,2
ADC CH,30H
JNZ E4
MOV DL,CH
INC
CL
INT 21H
JMP E1
MOV AH,4CH
E4:
INT 21H
MOV
CMP
AH,44H
AH,AL
CODE ENDS
END START
JNZ E5
INC
CH
3.动态输入20个二位无符号数,找出其中
JMP E1
最大数并显示。DATAS SEGMENT
E5:
M1 DB Please input 5
MOV AH,24H
numbers:,13,10,$
M2 DB The biggest number is:$ M3 DB ,13,10,$
MAX DW ?
DATAS ENDS
MOV
ADD
MOV
MOV
BX,MAX
BH,30H
DL,BH
AH,2
STACKS SEGMENT
INT 21H
STACKS ENDS
CODES SEGMENT
ADD
MO
显示全部