微机系统实验报告.docx

上传人:b****2 文档编号:2162081 上传时间:2023-05-02 格式:DOCX 页数:54 大小:217.58KB
下载 相关 举报
微机系统实验报告.docx_第1页
第1页 / 共54页
微机系统实验报告.docx_第2页
第2页 / 共54页
微机系统实验报告.docx_第3页
第3页 / 共54页
微机系统实验报告.docx_第4页
第4页 / 共54页
微机系统实验报告.docx_第5页
第5页 / 共54页
微机系统实验报告.docx_第6页
第6页 / 共54页
微机系统实验报告.docx_第7页
第7页 / 共54页
微机系统实验报告.docx_第8页
第8页 / 共54页
微机系统实验报告.docx_第9页
第9页 / 共54页
微机系统实验报告.docx_第10页
第10页 / 共54页
微机系统实验报告.docx_第11页
第11页 / 共54页
微机系统实验报告.docx_第12页
第12页 / 共54页
微机系统实验报告.docx_第13页
第13页 / 共54页
微机系统实验报告.docx_第14页
第14页 / 共54页
微机系统实验报告.docx_第15页
第15页 / 共54页
微机系统实验报告.docx_第16页
第16页 / 共54页
微机系统实验报告.docx_第17页
第17页 / 共54页
微机系统实验报告.docx_第18页
第18页 / 共54页
微机系统实验报告.docx_第19页
第19页 / 共54页
微机系统实验报告.docx_第20页
第20页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机系统实验报告.docx

《微机系统实验报告.docx》由会员分享,可在线阅读,更多相关《微机系统实验报告.docx(54页珍藏版)》请在冰点文库上搜索。

微机系统实验报告.docx

微机系统实验报告

西安电子科技大学

实验报告

 

课程名称

微机系统实验

实验学时

6

评语:

 

指导教师:

年月日

 

实验一汇编语言编程实验

1实验目的

(1)掌握汇编语言的编程方法

(2)掌握DOS功能调用的使用方法

(3)掌握汇编语言程序的调试运行过程

2实验内容

(1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。

(2)在屏幕上显示自己的学号姓名信息。

(3)循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。

(4)自主设计输入显示信息,完成编程与调试,演示实验结果。

3实验结果

任务一

4程序流程图

5程序代码

任务一

DATASEGMENT

NUMBERDB'03101214SONGYUANYUAN',0AH,0DH,'$'

string1DB0AH,0DH,'inputq/Qtoexit',0AH,0DH,0AH,0DH,'NUMBERANDNAME:

','$'

string2DB0AH,0DH,'Input:

$'

RESULTDB0AH,0DH,'ASCIIis:

$'

SDDB''

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETstring1

MOVAH,09H

INT21H

MOVDX,OFFSETNUMBER

INT21H

C1:

MOVDX,OFFSETstring2

MOVAH,09H

INT21H

MOVAH,01H

INT21H

CMPAL,'Q'

JZEXIT

CMPAL,'q'

JZEXIT

MOVSD,AL

MOVDX,OFFSETRESULT

MOVAH,09H

INT21H

MOVSI,OFFSETSD

MOVAL,DS:

[SI]

ANDAL,0F0H

MOVCL,4

SHRAL,CL

CMPAL,0AH

JBC2

ADDAL,07H

C2:

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAL,DS:

[SI]

ANDAL,0FH

CMPAL,0AH

JBC3

ADDAL,07H

C3:

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

loopC1

EXIT:

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

实验二数码转换实验

.1实验目的

(1)掌握不同进制数及编码相互转换的程序设计方法。

(2)掌握运算类指令编程及调试方法。

(3)掌握循环程序的设计方法。

2.实验内容及说明

(1)重复从键盘输入不超过5位的十进制数,按回车键结束输入;

(2)将该十进制数转换成二进制数;结果以16进制数的形式显示在屏幕上;

(3)如果输入非数字字符,则报告出错信息,重新输入;

(4)直到输入“Q”或‘q’时程序运行结束。

键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。

任务二

 

流程图

 

任务二

;PAGE60,132

;本实验将输入的ASCII码转换为二进制,要求输入位数小于5

DDATASEGMENT

MESDB0AH,0DH,'Theasciicodeofdecimalcodeare:

$'

MSG1DB0AH,0DH,'exit,input:

q/Q',0AH,0DH,0AH,0DH,'$'

MSG2DB0AH,0DH,0AH,0DH,'Input:

$'

MSG3DB0AH,0DH,'inputerror',0AH,0DH,'$'

BUFDB30H,30H,30H,31H,35H

DB10HDUP(0)

NDW0

DDATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DDATA

START:

MOVAX,DDATA

MOVDS,AX

MOVES,AX

MOVDI,OFFSETBUF

CLC

MOVDX,OFFSETMSG1

MOVAH,09H

INT21H

A1:

MOVAH,1;接收键盘输入

INT21H

INCN

STOSB;将输入数据存放在BUF缓冲区中

CMPAL,'Q'

JZEXIT

CMPAL,'q'

JZEXIT

CMPAL,39H

JAERROR

CMPAL,13

JNEA1

MOVCX,N

DECCX

MOVBX,000AH

MOVSI,OFFSETBUF

MOVAH,0

MOVDX,0

LODSB

CMPCX,1

JEA3

SUBAL,30H;将BUF中数据转换为二——十进制数

DECCX

A2:

IMULBX

MOVDX,AX

LODSB

MOVAH,0

A3:

SUBAL,30H

ADDAX,DX

LOOPA2

MOV[SI],AX

MOVDX,OFFSETMES

MOVAH,09H

INT21H

INCSI;显示高字节

CALLSHOW

DECSI;显示低字节

CALLSHOW

MOVDX,OFFSETMSG2

MOVAH,09H

INT21H

MOVAX,0

stosb

MOVAX,0

MOVCX,0

MOVBX,0

MOVDX,0

MOVDI,OFFSETBUF

CLC

MOVN,0

LOOPA1

EXIT:

MOVAX,4C00H

INT21H

ERROR:

MOVDX,OFFSETMSG3

MOVAH,09H

INT21H

MOVDX,OFFSETMSG2

MOVAH,09H

INT21H

JMPA1

SHOWPROCNEAR

MOVAL,DS:

[SI]

ANDAL,0F0H;取高4位

MOVCL,4

SHRAL,CL

CMPAL,0AH;是否是A以上的数

JBC2

ADDAL,07H

C2:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

MOVAL,DS:

[SI]

ANDAL,0FH;取低4位

CMPAL,0AH

JBC3

ADDAL,07H

C3:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

RET

SHOWENDP

CODEENDS

ENDSTART

实验三基本IO口扩展实验

.1实验目的

了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。

2实验内容

74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。

其引脚图如下:

 

74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

其引脚图如下:

 

本实验要求用74LS244作为输入口,读取开关状态,并将此状态通过74LS273连接到发光二极管显示。

具体实验内容如下:

(1)当开关Yi为低电平时对应的发光二极管点亮,Yi为高电平时对应的发光二极管灭。

(2)当开关Yi全为高电平时,发光二极管Qi从左至右轮流点亮。

(3)当开关Yi全为低电平时,发光二极管Qi从右至左轮流点亮。

(4)自主设计控制及显示模式,完成编程调试,演示实验结果。

3实验原理图

图3-2-174LS244与74LS273扩展I/O口原理图

实验连线图:

 

图3-2-2扩展I/O口连线图

4代码

MY_STACKSEGMENTPARA'STACK'

DB100DUP(?

MY_STACKENDS

MY_DATASEGMENTPARA'DATA'

IO_9054base_addressDB4DUP(0);PCI卡9054芯片I/O基地址暂存空间

IO_base_addressDB4DUP(0);PCI卡I/O基地址暂存空间

pcicardnotfindDB0DH,0AH,'pcicardnotfindoraddress/interrupterror!

!

!

',0DH,0AH,'$'

GOODDB0DH,0AH,'TheProgramisExecuting!

',0DH,0AH,'$'

LS244DW00000H

LS273DW00020H

RADB?

LBDB?

DELAY_SETEQU0FFFH;延时常数

MY_DATAENDs

MY_CODESEGMENTPARA'CODE'

MY_PROCPROCFAR

ASSUMECS:

MY_CODE,DS:

MY_DATA,SS:

MY_STACK

MAIN:

.386;386模式编译

MOVAX,MY_DATA

MOVDS,AX

MOVES,AX

MOVAX,MY_STACK

MOVSS,AX

CALLFINDPCI;自动查找PCI卡资源及IO口基址

MOVCX,wordptrIO_base_address

ADDLS244,CX;PCI卡IO基址+偏移

ADDLS273,CX

;自己的程序

MOVRA,7FH

MOVLB,0FEH

READ1:

MOVDX,LS244;读取开关状态

INAL,DX

CMPAL,0FFH

JZA1

CMPAL,00H

JZA2

NOTAL;取反

MOVDX,LS273

OUTDX,AL;送LED显示

CALLDELAY

CALLBREAK

JMPREAD1

A1:

MOVAL,0FEH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FDH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FBH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0F7H

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0EFH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0DFH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0BFH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,07FH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

JMPREAD1

A2:

MOVAL,7FH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0BFH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0DFH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0EFH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0F7H

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FBH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FDH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FEH

MOVDX,LS273

OUTDX,AL

CALLDELAY

CALLBREAK

JMPREAD1

MY_PROCENDp

BREAKPROCNEAR;按任意键退出

PUSHF

PUSHAX

PUSHDX

MOVAH,06H

MOVDL,0FFH

INT21H

JERETURN

MOVAX,4C00H

INT21H

RETURN:

POPDX

POPAX

POPF

RET

BREAKENDP

DELAYPROCNEAR;延时程序

PUSHF

PUSHDX

PUSHCX

MOVDX,DELAY_SET

D1:

MOVCX,-1

D2:

DECCX

JNZD2

DECDX

JNZD1

POPCX

POPDX

POPF

RET

DELAYENDp

;FUNCTIONCODE

IO_port_addreEQU0CF8H;32位配置地址端口

IO_port_dataEQU0CFCH;32位配置数据端口

IO_PLX_IDEQU200810B5H;PCI卡设备及厂商ID

BADR0=10H;基地址寄存器0

BADR1=14H;基地址寄存器1

BADR2=18H;基地址寄存器2

BADR3=1CH;基地址寄存器3

FINDPCIPROCNEAR;查找PCI卡资源并显示

PUSHAD

PUSHFD

MOVEBX,080000000H

FINDPCI_next:

ADDEBX,100H

CMPEBX,081000000H

JNZfindpci_continue

MOVDX,offsetpcicardnotfind;显示未找到PCI卡提示信息

MOVAH,09H

INT21H

MOVAH,4CH

INT21H;退出

findpci_continue:

MOVDX,IO_port_addre

MOVEAX,EBX

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

CMPEAX,IO_PLX_ID

JNZfindpci_next;检查是否发现PCI卡

MOVDX,IO_port_addre

MOVEAX,EBX

ADDEAX,BADR1

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

MOVdwordptrIO_9054base_address,EAX

ANDEAX,1

JZfindPCI_nex;检查是否为i/o基址信息MOVEAX,dwordptrIO_9054base_address

ANDEAX,0fffffffeh

MOVdwordptrIO_9054base_address,EAX;去除i/o指示位并保存MOVDX,IO_port_addre

MOVEAX,EBX

ADDEAX,BADR2

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

MOVdwordptrIO_base_address,EAX

ANDEAX,1

JZfindPCI_next;检查是否为i/o基址信息MOVEAX,dwordptrIO_base_address

ANDEAX,0fffffffeh

MOVdwordptrIO_base_address,EAX;去除i/o指示位并保存

MOVDX,offsetgood;显示开始执行程序信息

MOVAH,09H

INT21H

POPfd

POPad

RET

findPCIENDP

MY_CODEENDS

ENDMAIN

5实验结果:

发光二极管Qi从右至左轮流点亮

实验四可编程并行接口8255实验

.1实验目的

了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。

.2实验内容

(1)流水灯实验:

利用8255的A口、B口循环点亮发光二极管。

(2)交通灯实验:

利用8255的A口模拟交通信号灯。

(3)I/O输入输出实验:

利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示。

(4)通过开关控制交通红绿灯的亮灭。

(5)通过开关控制流水灯的循环方向和循环方式。

3流水灯实验原理图

4代码

MY_STACKSEGMENTPARA'STACK'

DB100DUP(?

MY_STACKENDS

MY_DATASEGMENTPARA'DATA'

IO_9054base_addressDB4DUP(0);PCI卡9054芯片I/O基地址暂存空间

IO_base_addressDB4DUP(0);PCI卡I/O基地址暂存空间

pcicardnotfindDB0DH,0AH,'pcicardnotfindoraddress/interrupterror!

!

!

',0DH,0AH,'$'

GOODDB0DH,0AH,'TheProgramisExecuting!

',0DH,0AH,'$'

;LS244DW00000H

LS273DW00020H

LS8255DW00000H

LS8255WDW00003H

RADB?

LBDB?

DELAY_SETEQU0FFFH;延时常数

MY_DATAENDs

MY_CODESEGMENTPARA'CODE'

MY_PROCPROCFAR

ASSUMECS:

MY_CODE,DS:

MY_DATA,SS:

MY_STACK

MAIN:

.386;386模式编译

MOVAX,MY_DATA

MOVDS,AX

MOVES,AX

MOVAX,MY_STACK

MOVSS,AX

CALLFINDPCI;自动查找PCI卡资源及IO口基址

MOVCX,wordptrIO_base_address

ADDLS8255,CX;PCI卡IO基址+偏移

ADDLS8255W,CX

;自己的程序

MOVRA,7FH

MOVLB,0FEH

READ1:

MOVAX,80H;读取开关状态

MOVDX,LS8255W

OUTDX,AX

MOVDX,LS8255

MOVAL,0FEH

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FDH

MOVDX,LS8255

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FBH

MOVDX,LS8255

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0F7

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2