北京邮电大学微机原理软件 下载本文

内容发布更新时间 : 2024/5/6 21:35:02星期一 下面是文章的全部内容请认真阅读。

实验报告

北京邮电大学 微机原理软件

ENDIN: MOV [BX],AL ;输入结束 POP DX POP CX POP BX POP AX RET INPUT ENDP

CHANGE PROC NEAR PUSH AX PUSH BX PUSH DX

MOV BX,OFFSET INNUM

ON: MOV AL,[BX] ; SUB AL,30H ; INC BX

MOV DL,10 ; MUL DL

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

ADD AL,DH ; CMP AL,BUFF ; JB MINEST

CMP BYTE PTR [BX],0DH ; JZ ENDCH

JMP ON

MINEST: MOV BUFF,AL ; CMP BYTE PTR [BX],0DH JZ ENDCH INC BX JMP ON ENDCH: NOP

MOV AL,BUFF ;十位

MOV AH,0 MOV DL,10 DIV DL

ADD AH,30H ; ADD AL,30H

MOV BUFF,AL ; MOV BUFF+1,AH

POP DX ;pop POP BX

读数

转化为16进制数 转化为16进制数 结果

比较哪个最小 判断是否是回车 最小数存于B 将数的个位和十位分别存储 AH存个位转换为ASCII码 存到内存中 出原保存的寄存器数据 11

存 AL实验报告

北京邮电大学 微机原理软件

POP AX RET CHANGE ENDP

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

MAIN: MOV AH,09H

MOV DX,SEG STRING2 MOV DS,DX

LEA DX,STRING2 INT 21H

CALL INPUT ; MOV AH,09H

MOV DX,OFFSET STRING1 ; INT 21H

CALL CHANGE ; MOV AH,09H

MOV DX,OFFSET BUFF ; INT 21H

MOV AX,4C00H INT 21H START ENDP

CODE ENDS END START 五、程序运行结果

调用输入子程序 显示提示性语句 调用比较子程序 显示最小数 12

实验报告

北京邮电大学 微机原理软件

六、预习题

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

答:将输入的第一个字符乘上10,再加上输入的第二个字符得到的数,就是所要判断的

十进制数。

2.如何将选出的最小值(二进制或十进制)变为 ASCII 码再进行显示?

答:将最小值除以10,商放在存储十进制十位的寄存器里,余数放在存储十进制个位的

寄存器内。

3.你觉得采用二进制运算还是十进制运算更适合于这个实验?

答:十进制。因为在进行与用户的交互时,无论是键入还是显示都用的是符合人的一贯思

维的十进制数,因此在比较大小时,用十进制更为合适。但是在机器内部,要转换为它所能操作的二进制数进行表示。 七、实验总结

子程序的使用能精简代码量,使程序更加简洁,但是在子程序的使用过程中要注意

对堆栈的保护。

13

实验报告

北京邮电大学 微机原理软件

实验四 子程序设计

一、实验目的

1.进一步掌握子程序设计方法;

2.进一步掌握基本的 DOS 功能调用. 二、实验要求

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

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

5.输入要有检错手段. 三、实验设计

14

实验报告

北京邮电大学 微机原理软件

四、源代码

DATA SEGMENT

HIGHER DB 100 DUP(0FFH) LOWER DB 100 DUP(0FFH) NUMBUFF DB ? NUMBUFF2 DB ?

NUM EQU $-LOWER

NUMBER DB 0 ;个数

BUFF DB 0

STR1 DB 0DH,0AH,'PLEASE INPUT SCORES:',0DH,0AH,'$'

STR2 DB 0DH,0AH,0DH,0AH,'THE STUTENTS`RANK',0DH,0AH,0AH,0DH,' 15

输入的R ST