1、微机系统实验报告西安电子科技大学实验报告课程名称微机系统实验成绩实验学时6评语: 指导教师: 年 月 日实验一 汇编语言编程实验1 实验目的(1) 掌握汇编语言的编程方法(2) 掌握DOS功能调用的使用方法(3) 掌握汇编语言程序的调试运行过程2 实验内容(1) 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。(2) 在屏幕上显示自己的学号姓名信息。(3) 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。(4) 自主设计输入显示信息,完成编程与调试,演示实验结果。3 实验结果任务一 4 程序流
2、程图 5 程序代码任务一 DATA SEGMENT NUMBER DB 03101214 SONG YUAN YUAN,0AH,0DH,$string1 DB 0AH,0DH, input q/Q to exit ,0AH,0DH,0AH,0DH,NUMBER AND NAME:,$string2 DB 0AH,0DH,Input: $RESULT DB 0AH,0DH,ASCII is :$SD DB DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET string1 MO
3、V AH,09H INT 21H MOV DX,OFFSET NUMBER INT 21HC1: MOV DX,OFFSET string2 MOV AH,09H INT 21H MOV AH,01H INT 21H CMP AL,Q JZ EXIT CMP AL,q JZ EXIT MOV SD,AL MOV DX ,OFFSET RESULT MOV AH,09H INT 21H MOV SI,OFFSET SD MOV AL,DS:SI AND AL,0F0H MOV CL,4 SHR AL,CL CMP AL,0AH JB C2 ADD AL,07HC2: ADD AL,30H MOV
4、 DL,AL MOV AH,02H INT 21H MOV AL,DS:SI AND AL,0FH CMP AL,0AH JB C3 ADD AL,07HC3: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H loop C1EXIT: MOV AX,4C00H INT 21HCODE ENDS END START 实验二 数码转换实验.1 实验目的(1) 掌握不同进制数及编码相互转换的程序设计方法。(2) 掌握运算类指令编程及调试方法。(3) 掌握循环程序的设计方法。2. 实验内容及说明(1) 重复从键盘输入不超过5位的十进制数,按回车键结束输入;(2) 将该十
5、进制数转换成二进制数;结果以16进制数的形式显示在屏幕上;(3) 如果输入非数字字符,则报告出错信息,重新输入;(4) 直到输入“Q”或q时程序运行结束。键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。 任务二 流程图任务二 ; PAGE 60,132;本实验将输入的ASCII码转换为二进制,要求输入位数小于5DDATA SEGMENTMES DB 0AH,0DH,The ascii code of decimal code are: $MSG1 DB 0AH,0DH,exit,input: q/Q ,0AH,0DH,0AH,0DH,$MSG2 DB 0AH,0DH,0AH
6、,0DH,Input: $MSG3 DB 0AH,0DH,input error,0AH,0DH,$BUF DB 30H,30H,30H,31H,35H DB 10H DUP(0)N DW 0DDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DDATA START: MOV AX,DDATA MOV DS,AX MOV ES,AX MOV DI,OFFSET BUF CLC MOV DX,OFFSET MSG1 MOV AH,09H INT 21H A1: MOV AH,1 ;接收键盘输入 INT 21H INC N STOSB ;将输入数据存放在BUF缓冲区中
7、 CMP AL,Q JZ EXIT CMP AL,q JZ EXIT CMP AL,39H JA ERROR CMP AL,13 JNE A1 MOV CX,N DEC CX MOV BX,000AH MOV SI,OFFSET BUF MOV AH,0 MOV DX,0 LODSB CMP CX,1 JE A3 SUB AL,30H ;将BUF中数据转换为二十进制数 DEC CXA2: IMUL BX MOV DX,AX LODSB MOV AH,0A3: SUB AL,30H ADD AX,DX LOOP A2 MOV SI,AX MOV DX,OFFSET MES MOV AH,09H
8、INT 21H INC SI ;显示高字节 CALL SHOW DEC SI ;显示低字节 CALL SHOW MOV DX,OFFSET MSG2 MOV AH,09H INT 21H MOV AX ,0 stosb MOV AX ,0 MOV CX ,0 MOV BX ,0 MOV DX,0 MOV DI,OFFSET BUF CLC MOV N,0 LOOP A1 EXIT: MOV AX,4C00H INT 21HERROR: MOV DX,OFFSET MSG3 MOV AH,09H INT 21H MOV DX,OFFSET MSG2 MOV AH,09H INT 21H JMP
9、A1SHOW PROC NEAR MOV AL,DS:SI AND AL,0F0H ;取高4位 MOV CL,4 SHR AL,CL CMP AL,0AH ;是否是A以上的数 JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H MOV AL,DS:SI AND AL,0FH ;取低4位 CMP AL,0AH JB C3 ADD AL,07HC3: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H RET SHOW ENDP CODE
10、 ENDS END START 实验三 基本IO口扩展实验.1 实验目的了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。2实验内容74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。其引脚图如下:74LS273是一种带清除功能的8D触发器, 1D8D为数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。其引脚图如下:本实验要求用74LS244作为输入口,读取开关状态,并将此状态通过74LS273连接到发光二极管显示。具体实验内容如下:(1) 当开关Yi为低电平时对应
11、的发光二极管点亮,Yi为高电平时对应的发光二极管灭。(2) 当开关Yi全为高电平时,发光二极管Qi从左至右轮流点亮。(3) 当开关Yi全为低电平时,发光二极管Qi从右至左轮流点亮。(4) 自主设计控制及显示模式,完成编程调试,演示实验结果。 3 实验原理图图3-2-1 74LS244与74LS273扩展I/O口原理图实验连线图:图3-2-2 扩展I/O口连线图4 代码MY_STACK SEGMENT PARA STACK DB 100 DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA DATAIO_9054base_address DB 4 DUP(0) ;PCI
12、卡9054芯片I/O基地址暂存空间IO_base_address DB 4 DUP(0) ;PCI卡I/O基地址暂存空间pcicardnotfind DB 0DH,0AH,pci card not find or address/interrupt error !,0DH,0AH,$GOOD DB 0DH,0AH,The Program is Executing !,0DH,0AH,$LS244 DW 00000H LS273 DW 00020HRA DB ?LB DB ?DELAY_SET EQU 0FFFH ;延时常数MY_DATA ENDsMY_CODE SEGMENT PARA COD
13、EMY_PROC PROC FAR ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK MAIN: .386 ;386模式编译 MOV AX,MY_DATA MOV DS,AX MOV ES,AX MOV AX,MY_STACK MOV SS,AX CALL FINDPCI ;自动查找PCI卡资源及IO口基址 MOV CX,word ptr IO_base_address ADD LS244,CX ;PCI卡IO基址+偏移 ADD LS273,CX ;自己的程序 MOV RA,7FH MOV LB,0FEH READ1: MOV DX,LS244 ;读取开关状态 IN AL,DX CMP AL,0FFH JZ A1 CMP AL,00H
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1