内容发布更新时间 : 2024/12/22 16:37:35星期一 下面是文章的全部内容请认真阅读。
实验报告
北京邮电大学 微机原理软件
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