北邮微机原理软件实验报告(精) 下载本文

MUL DL MOV DH,[BX] SUB DH,30H INC BX

ADD AL,DH ; 结果 CMP AL,B ; 比较哪个最小 JB YES

CMP BYTE PTR [BX],0DH ;判断是否是回车 JZ LAST JMP ONCE

YES: MOV B,AL ; 最小数存于B CMP BYTE PTR [BX],0DH JZ LAST INC BX JMP ONCE LAST: NOP

MOV AL,B ;将数的个位和十位分别存储AH存个位AL存十位 MOV AH,0 MOV DL,10

DIV DL

ADD AH,30H ;转换为ASCII码 ADD AL,30H

MOV B,AL ;存到内存中 MOV B+1,AH

POP DX ;pop出原保存的寄存器数据 POP BX POP AX RET

CHANGE ENDP

START PROC FAR ;主程序 MOV AX,DATA MOV DS,AX

CALL INPUT ;调用输入子程序 MOV AH,09H

MOV DX,OFFSET STRING1 ;显示提示性语句 INT 21H

CALL CHANGE ;调用比较子程序 MOV AH,09H

MOV DX,OFFSET B ;显示最小数 INT 21H MOV AX,4C00H INT 21H START ENDP CODE ENDS END START 五.运行结果

六.预习题

1.如何将输入的两个字符(0 -- 9变为十进制或二进制数?

答:将数的ASCII码值减去30H,即可得到对应的十进制数。 2.如何将选出的最小值(二进制或十进制变为ASCII 码再进行显示? 答:用DB定义一个字节型数据存放十进制数(高四位表示十位,低四位表示个位。使用cmp指令,先比较高四位,若小于,则和已存的数交换;若等于,则继续比较低四位,小于则交换。若等于,数不变。

3.你觉得采用二进制运算还是十进制运算更适合于这个实验? 答:十进制更合适。 实验四子程序设计 一.实验目的

1.进一步掌握子程序设计方法。 2.进一步掌握基本的DOS 功能调用。 二.实验内容

1.从键盘上输入某班学生的某科目成绩.输入按学生的学号由小到大的顺序输入 2.统计检查每个学生的名次。 3.将统计结果在屏幕上显示。

4.为便于观察,输入学生数目不宜太多,以不超过一屏为宜.输出应便于阅读.尽可能考虑美观。

5.输入要有检错手段。 三.流程图

四.源代码 DATA SEGMENT BUFFER DB 100 DB ? DB 10 DUP (?

STR1 DB 'please input the score of the students:',0DH,0AH,'$' STR2 DB 'error,please input the score again:',0DH,0AH,'$'

STR3 DB 'num rank scor ',0DH,0AH,'$' ;提示语句的字符串VAR1 DW ? VAR2 DW ? CK DB ?