微机原理实验_第1页
微机原理实验_第2页
微机原理实验_第3页
微机原理实验_第4页
微机原理实验_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微型计算机原理实验报告学号 40953055姓名 海米提。热合木江班级 测控0902班实验一 显示程序实验一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。流程图2.试验程序DATA SEGMENT MES DB Show a as hex:, 0AH,0DH,$ SD DB a DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA

2、 MOV DS, AX MOV DX, OFFSET MES MOV AH, 09H INT 21H MOV DI, OFFSET SD MOV AL, DS:DI AND AL, 0F0H SHR AL,4 CMP AL, 0AH JB C2 ADD AL, 07H C2: ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AL, DS:DI AND AL, 0FH CMP AL, 0AH JB C3 ADD AL, 07H C3: ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AX, 4C00H I

3、NT 21H CODE ENDS END START实验二 数据传送实验三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上1. 试验程序DATA SEGMENT MSR DB HELLO,WORLD!$ LEN EQU $- MSR DDATA ENDS EXDA SEGMENT MSD DB LEN DUP(?) EXDA ENDS MYSTACK SEGMENT STACK DW 20 DUP(?) MYSTACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DDATA, ES:EXDA START: MOV AX, DDAT

4、A MOV DS, AX MOV AX, EXDA MOV ES,AX MOV SI, OFFSET MSR MOV DI, OFFSET MSD MOV CX, LEN NEXT: MOV AL, SI MOV ES:DI, AL INC SI INC DI DEC CX JNZ NEXT PUSH ES POP DS MOV DX, OFFSET MSD MOV AH, 9 INT 21H MOV AX, 4C00H INT 21H CODE ENDS END START MOV BX, 0 MOV CX, LEN NEXT: MOV AL, MSRBX MOV ES:MSDBX, AL

5、INC BX LOOP NEXT2.实验结果实验三 数码转换程序实验1 将ASCII码表示的十进制数转换为二进制数1. 流程图2.试验程序 DATAS SEGMENT NUMBER DB 00012 DATAS ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV CX,4 MOV SI,OFFSET NUMBER MOV AL,SI SUB AL,30H MOV AH,00H MOV BL,10 L1: MUL BL ADD AL,SI+1 SUB AL,30H INC SI DEC CX JN

6、Z L1 MOV CX,8 MOV BL,AL NEXT: SHL BL,1 JC ONE MOV DL,30H JMP EXIT ONE: MOV DL,31H EXIT: MOV AH,02H INT 21H DEC CX JNZ NEXT MOV AH,4CH INT 21H CODE ENDS END START3.实验结果2 将十进制数的ASCII码转换为BCD码本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为 BCD 码后,并将转换结果按位分别显示于屏幕上。若输入的不是十进制数的ASCII码,则输出“FF”。提示:一字节ASCII码取其低四位即变

7、为BCD码 1. 实验流程图2.实验程序DATAS SEGMENT BUF DB 6 DB ? DB 6 DUP(?) BUFE DB FF$ DATAS ENDS CODE SEGMENT ASSUME DS:DATAS,CS:CODE START: MOV AX,DATAS MOV DS,AX MOV DX,OFFSET BUF MOV AH,10 INT 21H MOV CH,5 MOV SI,DX L2: MOV BL,SI+2 INC SI CMP BL,39H JA L1 SUB BL,30H AND BL,0FH MOV DH,4 MOV CL,4 ;SHL AL,CL ROL

8、BL,CL NEXT: SHL BL,1 JC ONE MOV DL,30H JMP EXIT ONE: MOV DL,31H EXIT: MOV AH,2 INT 21H DEC DH JNZ NEXT DEC CH JNZ L2 JMP L3 L1: MOV DX,OFFSET BUFE MOV AH,9 INT 21H L3: MOV AH,4CH INT 21H CODE ENDS END START3.实验结果 3将十六进制数的ASCII码转换为十进制数 十六位二进制数的值域为0-65535,最大可转换为五位十进制数。五位十进制数可表示为:ND=D4104+D3103+D2102+D

9、110+D0 因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1-D4,并将它们转化为ASCII码。本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转结果显示在屏幕1. 实验流程图2. 实验程序DATA SEGMENT BUF DB 5 DB ? DB 5 DUP(?) HEX DB 4 DUP(?) DECI DB 5 DUP(0),$ S1 DB 16JINZHI : $ S2 DB 0AH,0DH,10JINZHI : $ DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,D

10、ATA MOV DS,AX LEA DX,S1 MOV AH,9 INT 21H LEA DX,BUF MOV AH,10 INT 21H MOV SI,2 MOV DI,0 CHECK: MOV AL,SIBUF CMP AL,40H JS NUM CMP AL,47H JS CAPITAL SUB AL,57H JMP STORE NUM: SUB AL,30H JMP STORE CAPITAL: SUB AL,37H JMP STORE STORE: MOV HEXDI,AL INC DI INC SI CMP DI,4 JNZ CHECK LEA DX,S2 MOV AH,9 INT

11、 21H MOV AX,WORD PTR HEX SHL AL,4 ADD AH,AL MOV CH,AH MOV AX,WORD PTR 2HEX SHL AL,4 ADD AL,AH MOV AH,CH MOV SI,5 MOV BX,10 MOV DX,0 CMP AX,0 JNS CONV NEG AX PUSH AX PUSH DX MOV DL,2DH MOV AH,2 INT 21H POP DX POP AX CONV: DEC SI DIV BX ADD DX,30H MOV DECISI,DL XOR DX,DX CMP AX,0 JNZ CONV LEA DX,DECI

12、MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START3.实验结果4BCD码转换为二进制码 本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。 1.实验流程图2.实验程序DATA SEGMENT DASC DB 3 DB ? DB 3 DUP(?) S1 DB 0AH,0AH,0DH,10 JINZHI MA : $ S2 DB 0AH,0DH, BCD MA: $ S3 DB 0AH,0DH, 2 JINZHI MA : $ STO DB 8 DUP(?) DATA

13、 ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV DI,0 MOV SI,4 LOOPER: CALL WHOLE DEC SI JNZ LOOPER JMP EXIT WHOLE: LEA DX,S1 MOV AH,9 INT 21H LEA DX,DASC MOV AH,10 INT 21H LEA DX,S2 MOV AH,9 INT 21H MOV AX,WORD PTR 2DASC SUB AX,3030H SHL AL,4 ADD AL,AH MOV DISTO,AL MOV CH

14、,2 MOV CL,4 PRE1: MOV DX,30H ROL AL,1 JNC DISP1 ADD DX,01H DISP1: PUSH AX MOV AH,02 INT 21H POP AX DEC CL JNZ PRE1 PUSH AX MOV DL,20H MOV AH,2 INT 21H POP AX DEC CH MOV CL,4 JNZ PRE1 LEA DX,S3 MOV AH,9 INT 21H MOV AL,DISTO MOV BL,AL AND BL,0FH SHR AL,4 MOV CL,10 MUL CL ADD AL,BL INC DI MOV DISTO,AL

15、INC DI MOV CX,8 PRE2: MOV DX,30H ROL AL,1 JNC DISP2 ADD DX,01H DISP2: PUSH AX MOV AH,02 INT 21H POP AX LOOP PRE2 RET EXIT: MOV AH,4CH INT 21H CODE ENDS END START实验四 运算类程序实验1. 二进制双精度加法运算本实验要求计算x+y=z,将结果z输出到屏幕,其中x=001565a0h,y=0021b79eh.1. 实验流程图2.实验程序DATA SEGMENT X DD 421C65A0H Y DD 3C41B69BH S DB X+Y=

16、 $ SUM DB 4 DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,WORD PTR X MOV BX,WORD PTR Y ADD AX,BX MOV WORD PTR SUM,AX MOV AX,WORD PTR 2X MOV BX,WORD PTR 2Y ADC AX,BX MOV WORD PTR 2SUM,AX LEA DX,S MOV AH,9 INT 21H MOV CX,4 MOV SI,3 CHECK: MOV AL,SUMSI MOV AH

17、,AL SHR AL,4 CMP AL,0AH JS DISP1 ADD AL,07H DISP1: ADD AL,30H MOV DL,AL PUSH AX MOV AH,02H INT 21H POP AX AND AH,0FH CMP AH,0AH JS DISP2 ADD AH,07H DISP2: ADD AH,30H MOV DL,AH MOV AH,02H INT 21H DEC SI LOOP CHECK EXIT: MOV AH,4CH INT 21H CODE ENDS END START3.实验结果 (2)减法程序1.实验流程图2.实验程序DATA SEGMENT X D

18、W 0400H Y DW 0102H S DB Z=X-Y= $ Z DW 2 DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,S MOV AH,9 INT 21H MOV AX,WORD PTR X MOV BX,WORD PTR Y SUB AL,BL AAS SUB AH,BH AAS MOV Z,AX ADD AX,3030H MOV BX,AX MOV DL,30H MOV AH,2 INT 21H MOV DL,BH MOV AH,2 INT 21H

19、MOV DL,30H MOV AH,2 INT 21H MOV DL,BL MOV AH,2 INT 21H EXIT: MOV AH,4CH INT 21H CODE ENDS END START3.实验结果实验五 分支程序设计实验实验内容:实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL中的内容小,则修改之。当循环结束操作时,将BH,BL分别送屏幕显示。1. 实验流程图2.实验程序DATA SEGMENT B

20、UF DB The max number:$ CUF DB 0AH,0DH,The mini number:$ DUF DB 0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET BUF MOV AH,9 INT 21H MOV SI,OFFSET DUF MOV CH,7 MOV BH,SI MOV BL,SI L1: INC SI MOV AL,SI CMP AL,BH JB L2 MOV BH,

21、AL L2: CMP AL,BL JA L3 MOV BL,AL L3: DEC CH JNZ L1 ;MOV BH,0B9H XIANSHI: MOV AL,BH ;显示 BH和BL MOV CL,4 SHR AL,CL CMP AL,0AH JB C1 ADD AL,07H C1: ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV AL,BH AND AL,0FH CMP AL,0AH JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV DX,OFFSET CUF MOV AH,9

22、INT 21H ; MOV BL,0B9H MOV AL,BL MOV CL,4 SHR AL,CL CMP AL,0AH JB C3 ADD AL,07H C3: ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV AL,BL AND AL,0FH CMP AL,0AH JB C4 ADD AL,07H C4: ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START3.实验结果 实验六 循环程序设计实验实验内容:本实验要求通过求某数据区内负数的个数来表现循环程序的

23、结构形式。要求实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数1. 实验流程图2.实验程序DATAS SEGMENT BUF DB The number of negtive:$ CUF DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV DX,OFFSET BUF MOV AH,9 INT 2

24、1H MOV BL,0 MOV CX,10 LEA SI,CUF L2: MOV AL,SI INC SI AND AL,80H JZ L1 INC BL L1: DEC CX JNZ L2 ADD BL,30H MOV DL,BL MOV AH,2 INT 21H MOV AX,4C00H INT 21H CODES ENDS END START3.实验结果接口实验实验一 8259中断控制器应用实验一、实验目的1. 学习可编程中断控制器8259的工作原理。2. 掌握可编程中断控制器8259的应用编程方法。二、实验内容1单中断实验。利用系统总线上中断请求信号INTR,设计一个单中断应用。使用单

25、次脉冲模拟中断产生。编写中断处理程序,在显示器屏幕上显示一个字符。实验步骤如下:实验接线图如图2-1所示,按图接线。 运行Tdpit集成操作软件,调用程序代码(T8259-1.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C: TangDuPitPPASM) 使用运行命令运行程序,重复按单次脉冲开关KK1,显示屏会显示字符“9”,说明响应了中断。2扩展中断源查询方式应用实验。利用实验平台上8259控制器对系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IR0和IRI中断请求进行处理。实验步骤如下:实验接线图如图2-3所示,按图接线。 运行Tdpit集成操作软件,调

26、用程序代码(T8259-2.ASM),填写程序代码中的空缺处,编译、链接。 (程序源码路径:C: TangDuPitPPASM) 使用运行命令运行程序,按动KK1+、KK2+按键,观察中断是否产生。三、实验所用仪表及设备1. PC机一台。2. TD-PIT+实验系统一套。四实验代码1单中断实验。INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8259的OCW1地址INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8259的OCW2地址INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字 STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量IM_BAK DB ? ;保存INTR原中断屏蔽字的变量DATA ENDSCOD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论