SUB AL,7 L1: SUB AL,30H MOV [SI],AL INC SI
LOOP NEXT MOV AH,4CH INT 21H CODE ENDS
END START
微机原理及应用 汇编语言程序设计 第32讲~第38讲 0.8 0.8 15
在当前数据段,偏移地址为DATAB开始的顺序80个单元中,存放着某班80个同学某门课考试的成绩,编写程序统计高于等于90分,80分—89分,70分—79分,60分—69分,低于60分的人数各为多少,将结果放在同一数据段、偏移地址为BTRX开始的顺序单元中。
1. 写出编程思想。 2. 编写完整的源程序。
1. 编程思想
将偏移地址为DATAB开始的顺序80个单元中的数分别与90、80、70、60比较,根据比较的大小关系就可统计出高于等于90分,80分—89分,70分—79分,60分—69分,低于60分的人数。
2. 完整的源程序
STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS DATA SEGMENT
DATAB DB 80 DUP(?) BTRX DB 5 DUP(00H) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX
MOV SI,OFFSET DATAB MOV DI,OFFSET BTRX XOR BX,BX XOR DX,DX MOV CX,80 NEXT: MOV AL,[SI]
CMP AL,90 JB C80
INC BH ;≥90分的人数 JMP AAA C80: CMP AL,80 JB C70
INC BL ;≥80分的人数 JMP AAA C70: CMP AL,70 JB C60
INC DH ;≥70分的人数 JMP AAA C60: CMP AL,60 JB AAA
INC DL ;≥60分的人数 JMP AAA AAA: INC SI
LOOP NEXT MOV AL,80 SUB AL,BH SUB AL,BL SUB AL,DH
SUB AL,DL ;<50分的人数 MOV [DI],BH MOV [DI]+1,BL MOV [DI]+2,DH MOV [DI]+3,DL MOV [DI]+4,AL MOV AH,4CH INT 21H CODE ENDS
END START
微机原理及应用 汇编语言程序设计 第32讲~第38讲 0.8 0.8 15
编写完整的汇编语言程序,实现从键盘输入一串字符,并在屏幕上显示出来。
1. 写出编程思想。
2. 编写完整的汇编语言程序。
1. 编程思想
用DOS 0AH号功能完成从键盘输入一串字符,用DOS 09H号功能完成屏幕的显示。 2. 完整的汇编语言程序
STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS DATA SEGMENT
STRING1 DB ‘DO YOU WANT TO INPUT STRING?(Y/N):$’ CRLF DB 0DH,0AH,’$’
STRING2 DB ‘PLEASE INPUT STRING.’,0DH,0AH,’$’ BUFIN DB 20H DB ?
BUFIN1 DB 20H DUP(?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX
LEA DX,STRING1 MOV AH,09H INT 21H
MOV AH,01H INT 21H
CMP AL,’Y’ JE INPUT CMP AL,’y’ JNE DONE INPUT: LEA DX,CRLF MOV AH,09H INT 21H
LEA DX,STRING2 MOV AH,09H INT 21H
LEA DX,BUFIN MOV AH,0AH INT 21H
MOV AL,BUFIN+1 CBW
LEA SI,BUFIN+2 ADD SI,AX
MOV BYTE PTR [SI],’$’ LEA DX,CRLF MOV AH,09H INT 21H
LEA DX,BUFIN+2
MOV AH,09H INT 21H
MOV AH,4CH INT 21H CODE ENDS
END START
微机原理及应用 汇编语言程序设计 第32讲~第38讲 0.8 0.8 15
已知有100个8位无符号数已存放在缓存区INX中,编写完整的汇编语言程序,实现对这100个数据由高到低排序。
1。写出编程思想。
2。编写完整的汇编语言程序。
1. 编程思想
利用气泡排序法对这100个8位无符号数两两进行比较,从而完成值的大小从大至小排序。 2. 完整的汇编语言程序
STACK SEGMENT STACK DB 256 DUP(?) STACK ENDS DATA SEGMENT
INX DB 100 DUP(?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV CH,100-1 B10: LEA SI,INX MOV CL,CH B20: MOV AL ,[SI]
CMP AL ,[SI]+1 JAE B30 XCHG AL, [SI]+1 MOV [SI],AL B30: INC SI
DEC CL JNZ B20 DEC CH
JNZ B10
相关推荐: