2014微机原理实验题目及答案 联系客服

发布时间 : 星期日 文章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)将所输入数据以十六进制在屏幕显示输出(即十进制转十六进制)。 答案: