微机系统实验报告_第1页
微机系统实验报告_第2页
微机系统实验报告_第3页
免费预览已结束,剩余21页可下载查看

下载本文档

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

文档简介

1、-/西安电子科技大学实验报告课程名称微机系统实验成实验学时6绩评语:指导教师:年月日-/实验一汇编语言编程实验1 实验目的(1) 掌握汇编语言的编程方法(2) 掌握 DOS功能调用的使用方法(3) 掌握汇编语言程序的调试运行过程2 实验内容( 1)将指定数据区的字符串数据以ASCII 码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。(2) 在屏幕上显示自己的学号姓名信息。( 3) 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII 码,直到输入” Q”或“ q”时结束。( 4) 自主设计输入显示信息,完成编程与调试,演示实验结果。3 实验结果任务一4 程序流程图-

2、/5 程序代码任务一DATA SEGMENTNUMBER 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 SEGM

3、ENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET string1MOV AH,09HINT 21HMOV DX,OFFSET NUMBERINT 21HC1:MOV DX,OFFSET string2MOV AH,09HINT 21HMOV AH,01HINT 21HCMP AL,'Q'JZ EXITCMP AL,'q'JZ EXITMOV SD,ALMOV DX ,OFFSET RESULTMOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:SIA

4、ND AL,0F0HMOV CL,4SHR AL,CLCMP AL,0AHJB C2ADD AL,07HC2:ADD AL,30HMOV DL,ALMOV AH,02HINT 21HMOV AL,DS:SIAND AL,0FHCMP AL,0AHJB C3-/ADD AL,07HC3:ADD AL,30HMOV DL,ALMOV AH,02HINT 21Hloop C1EXIT:MOV AX,4C00HINT 21HCODE ENDSEND START实验二数码转换实验.1实验目的(1) 掌握不同进制数及编码相互转换的程序设计方法。(2) 掌握运算类指令编程及调试方法。(3) 掌握循环程序的设

5、计方法。2. 实验内容及说明( 1)重复从键盘输入不超过5 位的十进制数,按回车键结束输入;( 2)将该十进制数转换成二进制数;结果以16 进制数的形式显示在屏幕上;( 3) 如果输入非数字字符,则报告出错信息,重新输入;( 4) 直到输入“ Q”或 q时程序运行结束。键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。任务二-/流程图任务二;PAGE60,132; 本实验将输入的 ASCII 码转换为二进制 , 要求输入位数小于 5DDATASEGMENTMESDB0AH,0DH,'The ascii code of decimal code are: $'M

6、SG1 DB 0AH,0DH,'exit,input: q/Q ',0AH,0DH,0AH,0DH,'$'MSG2 DB 0AH,0DH,0AH,0DH,'Input: $'MSG3 DB 0AH,0DH,'input error',0AH,0DH,'$'BUFDB30H,30H,30H,31H,35HDB10H DUP(0)N DW 0 DDATA ENDSCODESEGMENTASSUME CS:CODE,DS:DDATASTART:MOVAX,DDATAMOVDS,AXMOVES,AXMOV DI,OFFSE

7、T BUFCLCMOV DX,OFFSET MSG1MOV AH,09HINT 21H-/A1:MOVAH,1; 接收键盘输入INT21HINCN; 将输入数据存放在BUF缓冲区中STOSBCMP AL,'Q'JZ EXITCMP AL,'q'JZ EXITCMP AL,39HJA ERRORCMPAL,13JNEA1MOVCX,NDECCXMOV BX,000AHMOV SI,OFFSET BUFMOVAH,0MOVDX,0LODSBCX,1CMPJEA3; 将 BUF中数据转换为二十进制数SUB AL,30HA2:DECCXIMULBXMOVDX,AXLOD

8、SBAH,0A3:MOVSUB AL,30HADDAX,DXLOOPA2MOV SI,AXMOVDX,OFFSET MESMOVAH,09HINT21H; 显示高字节INCSICALL SHOW; 显示低字节DECSICALL SHOWMOVDX,OFFSET MSG2MOVAH,09HINT21HMOV AX ,0stosbMOV AX ,0MOV CX ,0MOV BX ,0MOV DX,0MOV DI,OFFSET BUFCLCMOV N,0LOOP A1MOVAX,4C00HEXIT:ERROR:INT21HMOVDX,OFFSET MSG3MOVAH,09HINT21HMOVDX,O

9、FFSET MSG2MOVAH,09HINT21HSHOWJMP A1PROCNEARAL,DS:SIMOV;取高 4位ANDAL,0F0HMOVCL,4SHRAL,CL; 是否是 A 以上的数CMPAL,0AHJBC2C2:ADDAL,07HADDAL,30H;show characterMOVDL,ALMOVAH,02HINT21HMOVAL,DS:SI;取低 4位ANDAL,0FHCMPAL,0AHJBC3C3:ADD AL,07HADDAL,30H;show characterMOVDL,ALMOVAH,02HINT21HRETENDPCODESHOWENDSEND START-/实验

10、三基本 IO 口扩展实验.1实验目的了解 TTL 芯片扩展简单I/O 口的方法,掌握数据输入输出程序编制的方法。2 实验内容74LS244 是一种三态输出的8 总线缓冲驱动器,无锁存功能, 当 G为低电平时, Ai 信号传送到 Yi ,当为高电平时,Yi 处于禁止高阻状态。其引脚图如下:74LS273 是一种带清除功能的8D 触发器,1D 8D 为数据输入端,1Q8Q 为数据输出端,正脉冲触发,低电平清除,常用作8 位地址锁存器。其引脚图如下:-/本实验要求用 74LS244 作为输入口, 读取开关状态, 并将此状态通过 74LS273 连接到发光二极管显示。具体实验内容如下:( 1) 当开关

11、 Yi 为低电平时对应的发光二极管点亮,Yi 为高电平时对应的发光二极管灭。( 2)当开关 Yi 全为高电平时,发光二极管Qi 从左至右轮流点亮。( 3)当开关 Yi 全为低电平时,发光二极管Qi 从右至左轮流点亮。( 4)自主设计控制及显示模式,完成编程调试,演示实验结果。-/3 实验原理图图 3-2-174LS244 与 74LS273 扩展 I/O 口原理图实验连线图:图 3-2-2扩展 I/O 口连线图-/4 代码MY_STACKSEGMENT PARA 'STACK'DB100 DUP(?)MY_STACKENDSMY_DATA SEGMENT PARA 'D

12、ATA'PCI 卡 9054 芯片 I/O 基地址暂存空间IO_9054base_address DB 4 DUP(0)IO_base_address DB 4 DUP(0)card;PCI 卡 I/O基地址暂存空间pcicardnotfindDB0DH,0AH,'pcinotfindoraddress/interrupterror !',0DH,0AH,'$'DB 0DH,0AH,'The Program is Executing !',0DH,0AH,'$'GOODDWLS24400000HLS273DW00020HR

13、ADB?LBDB?; 延时常数DELAY_SETEQU0FFFHMY_DATA ENDsMY_CODE SEGMENT PARA 'CODE'MY_PROCPROCFARMAIN:ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK.386 ;386模式编译AX,MY_DATAMOVMOVDS,AXMOVES,AXMOVAX,MY_STACKMOVSS,AX; 自动查找 PCI 卡资源及 IO 口基址CALL FINDPCIMOVCX,word ptr IO_base_address移ADDLS244,CX;PCI 卡 IO 基址 +偏ADDLS

14、273,CX; 自己的程序MOVRA,7FHMOVLB,0FEHDX,LS244; 读取开关状态READ1:MOVINAL,DXCMPAL,0FFHJZA1CMPAL,00HJZA2; 取反NOTALMOVDX,LS273; 送 LED显示OUTDX,ALCALLDELAYCALL BREAKA1:JMPREAD1MOV AL,0FEHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FDHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FBHMOVDX,LS273OUTDX,ALCALLDELAYCALL BR

15、EAKMOVAL,0F7HMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0EFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0DFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0BFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,07FHMOVDX,LS273OUTDX,AL-/CALLDELAYCALL BREAKJMPREAD1A2:MOV AL,7FHMOVDX,LS273OUTDX,ALCALLDELAYCALL B

16、REAKMOVAL,0BFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0DFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0EFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0F7HMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FBHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FDHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0F

17、EHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMY_PROCJMPREAD1ENDpNEAR; 按任意键退出BREAKPROCPUSHFPUSHAXPUSHDXMOV AH,06HMOV DL,0FFHINT21HJERETURNMOV AX,4C00HRETURN:INT21HDXPOPPOPAXPOPFBREAKRETENDPNEAR; 延时程序DELAYPROCPUSHFPUSHDXPUSHCXD1:MOV DX,DELAY_SETMOV CX,-1D2:DEC CXJNZD2DECDXJNZD1POPCXPOPDXRETPOPFDELAYENDp;FU

18、NCTION CODEEQU 0CF8H;32 位配置地址端口IO_port_addreIO_port_dataEQU 0CFCH;32 位配置数据端口IO_PLX_IDEQU 200810B5H;PCI 卡设备及厂商 IDBADR0=10H; 基地址寄存器 0BADR1=14H; 基地址寄存器 1BADR2=18H; 基地址寄存器2BADR3=1CH; 基地址寄存器3FINDPCIPROCNEARPUSHADPUSHFD; 查找PCI 卡资源并显示-/MOVEBX,080000000HFINDPCI_next:EBX,100HADDCMPEBX,081000000HJNZfindpci_co

19、ntinue; 显示未找到 PCI 卡提示信息MOVDX,offset pcicardnotfindMOVAH,09HINT21HMOVAH,4CH; 退出INT21Hfindpci_continue:MOV DX,IO_port_addreMOV EAX,EBX; 写地址口OUT DX,EAXMOV DX,IO_port_data; 读数据口INEAX,DXCMPEAX,IO_PLX_ID; 检查是否发现PCI 卡JNZfindpci_nextMOVDX,IO_port_addreMOVEAX,EBXADDEAX,BADR1; 写地址口OUTDX,EAXMOVDX,IO_port_data;

20、 读数据口INEAX,DXMOVdword ptr IO_9054base_address,EAXANDEAX,1; 检查是否为 i/o基址信息 MOVJZfindPCI_nexEAX,dword ptr IO_9054base_addressANDEAX,0fffffffeh; 去 除i/o指 示 位并保存 MOVMOV dword ptr IO_9054base_address,EAXDX,IO_port_addreMOV EAX,EBXADD EAX,BADR2; 写地址口OUT DX,EAXMOV DX,IO_port_data; 读数据口INEAX,DXMOVdword ptr IO

21、_base_address,EAXANDEAX,1; 检 查 是 否 为 i/o基址信息 MOVJZfindPCI_nextEAX,dword ptr IO_base_addressANDEAX,0fffffffeh; 去除 i/oMOVdword ptr IO_base_address,EAX指示位并保存MOVDX,offset good; 显示开始执行程序信息MOVAH,09HINT21HPOPfdPOPadfindPCIRETENDPMY_CODEENDSENDMAIN5 实验结果:发光二极管 Qi 从右至左轮流点亮实验四可编程并行接口8255 实验.1实验目的了解可编程并行接口芯片82

22、55 的内部结构、工作方式、初始化编程及应用。.2实验内容(1) 流水灯实验:利用 8255 的 A 口、 B 口循环点亮发光二极管。(2) 交通灯实验:利用 8255 的 A 口模拟交通信号灯。(3) I/O 输入输出实验: 利用 8255 的 A 口读取开关状态, 8255 的 B 口把状态送发光二极管显示。(4) 通过开关控制交通红绿灯的亮灭。(5) 通过开关控制流水灯的循环方向和循环方式。-/3 流水灯实验原理图图 6-3-6流水灯实验4 代码MY_STACKSEGMENT PARA 'STACK'DB100 DUP(?)MY_STACKENDSMY_DATA SEGM

23、ENT PARA 'DATA'PCI 卡 9054 芯片 I/O 基地址暂存空间IO_9054base_address DB 4 DUP(0)IO_base_address DB 4 DUP(0)card;PCI 卡 I/O基地址暂存空间pcicardnotfindDB0DH,0AH,'pcinotfindoraddress/interrupterror !',0DH,0AH,'$'DB 0DH,0AH,'The Program is Executing !',0DH,0AH,'$'GOODDW;LS244DW00

24、000HLS27300020HLS8255DW00000HLS8255WDW00003HRADB?LBDB?; 延时常数DELAY_SETEQU0FFFHMY_DATA ENDsMY_CODE SEGMENT PARA 'CODE'MY_PROCPROCFARMAIN:ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK.386 ;386 模式编译AX,MY_DATAMOVMOVDS,AXMOVES,AXMOVAX,MY_STACKMOVSS,AX; 自动查找 PCI 卡资源及 IO 口基址CALL FINDPCIMOVCX,word ptr I

25、O_base_address+偏移ADDLS8255,CX;PCI 卡 IO 基址ADDLS8255W,CX; 自己的程序MOVRA,7FHMOVLB,0FEHREAD1:MOVAX,80H; 读取开关状态MOVDX,LS8255WOUTDX,AXMOVDX,LS8255MOVAL,0FEHOUTDX,ALCALLDELAYCALL BREAKMOVAL,0FDHMOVDX,LS8255OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FBH-/MOVDX,LS8255OUTDX,ALCALLDELAYCALL BREAKMOVAL,0F7HMOVDX,LS8255OUTDX

26、,ALCALLDELAYCALL BREAKMOVAL,0EFHMOVDX,LS8255OUTDX,ALCALLDELAYCALL BREAKMOVAL,0DFHMOVDX,LS8255OUTDX,ALCALLDELAYCALL BREAKMOVAL,0BFHMOVDX,LS8255OUTDX,ALCALLDELAYCALL BREAKMOVAL,07FHMOVDX,LS8255OUTDX,ALCALLDELAYCALL BREAKJMPREAD1; 取反;NOTAL;MOVDX,LS273; 送 LED显示;OUTDX,AL;CALLDELAY;CALLBREAKMY_PROC;JMPREA

27、D1ENDpNEAR; 按任意键退出BREAKPROCPUSHFPUSHAXPUSHDXMOV AH,06HMOV DL,0FFHINT21HJERETURNMOV AX,4C00HRETURN:INT21HDXPOPPOPAXPOPFBREAKRETENDPNEAR; 延时程序DELAYPROCPUSHFPUSHDXPUSHCXD1:MOV DX,DELAY_SETMOV CX,-1D2:DEC CXJNZD2DECDXJNZD1POPCXPOPDXRETPOPFDELAYENDp;FUNCTION CODEEQU 0CF8H;32 位配置地址端口IO_port_addreIO_port_d

28、ataEQU 0CFCH;32 位配置数据端口IO_PLX_IDEQU 200810B5H;PCI 卡设备及厂商 IDBADR0=10H; 基地址寄存器 0BADR1=14H; 基地址寄存器 1BADR2=18H; 基地址寄存器2BADR3=1CH; 基地址寄存器3FINDPCI PROCNEAR; 查找 PCI 卡资源并显示PUSHADPUSHFDMOVEBX,080000000HFINDPCI_next:EBX,100HADDCMPEBX,081000000HJNZfindpci_continue; 显示未找到 PCI 卡提示信息MOVDX,offset pcicardnotfindMOV

29、AH,09HINT21HMOV AH,4CH-/INT21H; 退出findpci_continue:MOV DX,IO_port_addreMOV EAX,EBX; 写地址口OUT DX,EAXMOV DX,IO_port_data; 读数据口INEAX,DXCMP EAX,IO_PLX_ID; 检查是否发现PCI 卡JNZfindpci_nextMOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR1; 写地址口OUT DX,EAXMOV DX,IO_port_data; 读数据口INEAX,DXMOV dword ptr IO_9054base_addre

30、ss,EAXAND EAX,1; 检查是否为 i/oJZfindPCI_next基址信息MOV EAX,dword ptr IO_9054base_addressANDEAX,0fffffffeh; 去除 i/oMOV dword ptr IO_9054base_address,EAX指示位并保存MOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR2; 写地址口OUT DX,EAXMOV DX,IO_port_data; 读数据口INEAX,DXMOV dword ptr IO_base_address,EAXAND EAX,1; 检查是否为 i/o基址信息J

31、ZfindPCI_nextMOV EAX,dword ptr IO_base_addressANDEAX,0fffffffeh; 去除 i/o 指示位并保存MOV dword ptr IO_base_address,EAXMOV DX,offset good; 显示开始执行程序信息MOV AH,09HINT21HPOPfdPOPadfindPCIRETENDPRIGHT:MOV AL,0FEHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FDHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FBHMOVDX,

32、LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0F7HMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0EFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0DFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0BFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,07FHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKJMPREAD1LEFT:MOV AL,7FHMOVDX

33、,LS273OUTDX,ALCALLDELAYCALL BREAK-/MOVAL,0BFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0DFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0EFHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0F7HMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FBHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKMOVAL,0FDHMOVDX,LS273OUTD

34、X,ALCALLDELAYCALL BREAKMOVAL,0FEHMOVDX,LS273OUTDX,ALCALLDELAYCALL BREAKJMPREAD1MY_CODEENDSENDMAIN5 实验结果:发光二极管Qi 轮流点亮实验五可编程定时器 / 计数器 8254( 8253)实验.1实验目的( 1)掌握 8254 定时 / 计数器的编程方法。( 2)学习 8254 的几种工作方式。( 3)了解计数器的硬件连接及时序关系。.2实验内容( 1)将 32Hz 的晶振频率作为8254 的时钟输入,利用定时器8254产生 1Hz的方波,用发光二极管显示输出结果(发光二极管闪烁)。( 2)开关控制结束程序执行,发光二极管熄灭。( 3)开关

温馨提示

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

评论

0/150

提交评论