发布时间 : 星期一 文章2014微机原理实验题目及答案更新完毕开始阅读53bd9c57580216fc700afdaf
微机原理实验
1. 验收要求
(1)对于一个编辑好的任一汇编语言源程序,会进行编译和连接,最终生成
一个可执行程序。(DOS环境运行)
(2)对三个给定的题目进行验收。(在给出的仿真环境编辑和运行) 2. 题目 (1)排序
对输入的多个数字进行排序。 要求:
(a)所有数字从键盘输入;
(b)数字中至少包含一个大于10的数字; (c)排好序的数字以十进制形式在屏幕显示输出。 答案:
DATA SEGMENT
STRING1 DB 'Please Input the number: ','$' ;提示输入 STRING2 DB 'The order from max to min:','$' ;输出排序从大到小
SCORE DW 100 DUP(0) ;分配存放空间
DATA ENDS
STACK SEGMENT ;堆栈段 DW 64 DUP(0) STACK ENDS
CODE SEGMENT ;代码段
ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX
MOV AX,STACK MOV SS,AX
MOV DX,OFFSET STRING1 ;显示提示输入 MOV AH,09H INT 21H
XOR BX,BX ;寄存器清零 XOR CX,CX XOR SI,SI XOR DI,DI
INPUT: MOV AH,1 ;输入一个字符 INT 21H
CMP AL,0DH ;是否为回车键 JZ OVER ;是就跳到OVER CMP AL,20H ;是否为空格 JZ SAVE ;是就跳到SAVE SUB AL,30H ;变为真数 MOV CL,4
SHL BX,CL ;左移四位,变为BCD码 ADD BL,AL JMP INPUT
SAVE: MOV SCORE[SI],BX ;保存到SCORE中 ADD SI,2 INC DI XOR BX,BX JMP INPUT
OVER: MOV SCORE[SI],BX ;保存最后一个数据,并存放到SCORE中 INC DI MOV DL,0AH MOV AH,02H
INT 21H MOV CX,DI DEC CX XOR BX,BX
COMP1: MOV SI,2 ;指向下一个数 MOV DX,CX
COMP2: MOV AX,SCORE[BX]
CMP AX,SCORE[BX+SI] ;比较前后两个数 JNC COMP3 ;小于就跳到COMP3 XCHG AX,SCORE[BX+SI] ;交换位置 MOV SCORE[BX],AX
COMP3: ADD SI,2 ;指向下一个数 DEC DX JNZ COMP2
ADD BX,2 ;指向下一个数 LOOP COMP1
MOV DX,OFFSET STRING2 MOV AH,09H INT 21H
SUB SI,SI ;把SI清零
OUT_PUT:
MOV BX,SCORE[SI] ;输出百位数 MOV DL,BH AND DL,0FH ADD DL,30H MOV AH,02H INT 21H
MOV DL,BL ;输出十位数
MOV CL,4 SHR DL,CL ADD DL,30H MOV AH,02H INT 21H
MOV DL,BL ;输出个位数 AND DL,0FH ADD DL,30H MOV AH,02H INT 21H
MOV DL,20H ;输出空格 MOV AH,02H INT 21H ADD SI,2 DEC DI
JNZ OUT_PUT
MOV AH,4CH ;返回DOS INT 21H
CODE ENDS END START (2)数制转换
将输入的一个数据以不同进制形式输出。 要求:
(a)所有数字从键盘输入;
(b)输入数据为任意一个小于十万的十进制数据;
(c)将所输入数据以十六进制在屏幕显示输出(即十进制转十六进制)。 答案: