32位微机原理上机实验报告要点

32位微机原理上机实验报告要点
32位微机原理上机实验报告要点

西北工业大学明德学院

实验报告

实验项目微机原理与接口应用实验

班级121204 _______________

姓名田家豪王辰硕

学号121566 121567

指导老师伍明高

实验题目

(1)显示班级符号输出;

(2)显示学号符号输出;

(3)显示姓名符号输出;

(4)显示单个字符输出;

实验目的

1、掌握在 PC 机上以十六位进制形式显示数据的方法

2、熟悉汇编的调试环境和使用

实验内容

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK2 ENDS

DATA SEGMENT USE13

MES1 DB ‘121204 ',0AH,0DH,‘$ '

MES2 DB ‘121566 ',0AH,0DH,‘$ '

MES3 DB ‘TIANJIAHAO',0AH,0DH,‘$'

MES4 DB ‘121204 ',0AH,0DH,‘$ '

MES5 DB ‘121567 ',0AH,0DH,‘$'

MES6 DB ‘WANGCHENSHUO',0AH,0DH,‘$'

SD DB ‘A'

DATA ENDS

MOV AH,09H

INT 21H

MOV DX,OFFSET MES3

MOV AH,09H

INT 21H

MOV DX,OFFSET SD

MOV AL,DS:[SI]

AND AL,0F0H

SHR AL,4

CMP AL,0AH

JB C2

ADD AL,07H

CODE SEGMENT USE13

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET MES1

MOV AH,09H

INT 21H

MOV DX,OFFSET MES2

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

INT 21H

CODE ENDS

END START

实验步骤

(1)运行编译器,编译程序。

(2)单击编译,保存。

(3)单击调试程序,发现无误。

(4)运行程序。

实验总结

1.通过实验,熟悉了汇编语言编译环境,了解了程序的编译,运行和调试的方法

2.实验过程中,在调试的时候,各调试指令的用法十分复杂,需要不断练习,熟悉指令的运行目的。

3.不同的程序代码,在不同的环境运行方式也不同,这是我们必须要掌握的技能。

实验题目

显示程序实验实验目的

(1)掌握在 PC 机上以十六进制形式显示数据的方法。

(2)掌握部分 DOS 功能调用使用方法。

(3)熟悉 Tdpit 集成环境和调试器的使用。

实验内容及说明

一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容

显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过功能调

DOS 用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。

(1)显示单个字符输出入口: AH=02H

调用参数:DL=B岀字符

(2)显示字符串

入口: AH=09H

调用参数:DS:DX=|地址,’为结束字符

(3)键盘输入并回显

入口: AH=01H

返回参数:AL=W岀字符

⑷返回DOS系统

入口: AH=4CH

调用参数:AL=M回码

实验步骤

(1)运行 Tdpit 软件,选择文件菜单,点击新建,进入一个源文件编辑界面。根据实验内容的描

述编写实验程序。

(2)使用编译菜单中的编译和链接对实验程序进行汇编、连接。

(3)使用编译菜单中的运行,运行程序,观察运行结果。

(4)使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数

据区的内容。

(5)更改数据区中的数据,检查程序的正确性。

程序如下:

DATASEGMENT

MES DB 'Show a as hex:',0AH,0DH,'$'

SD DB 'a'

DATAENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

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

INT 21H CODE ENDS END START ;取高 4 位

;是否是 A 以上的数;显示字符

;取低 4 位

;显示字符

;返回 DOS

实验题目

7 种寻址方式指令编程实验目的通过对传送和算术运算类指令的实验结果的观察和分析,并了解各指令对于相关标志位的影响。

实验内容

7 种寻址方式指令的编程包括:

(1)MOV专送类;

( 2 )堆栈操作传送;

( 3 )交换专送;

( 4 )输入 / 输出专送;

( 5 )串专送指令等。

( 6 )在指令后面注释源操作数和目的操作数的寻址方式。程序如下:

DATA SEGMENT

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

STADA TA

SEGMENTRT:MOV AX,DATA

MOV DS,AX

MOV AL,04H

MOV DX,2000H

MOV AX,99AAH

MOV BX,1257H

SUB AX,BX

MOV AX,5000H

MOV SI,3000H

MOV AX,DS:[SI]

PUSH AX

PUSH EBX

PUSH[SI]

PUSH DOWRD PTR[DI]

PUSHW 0A124H

PUSHD 20H

MOV AX,3000H

XCHG AX,1000H

MOV 3000H,AX

IN DX,7000H 加深对各指令完成操作功能的理解,

//立即寻址

//寄存器寻址

//寄存器间接寻址

//堆栈操作指令//交换专送指令

IN AX,DX 实验步骤//输入指令

1. 建立文件,编写源程序。

2. 编译、连接生成 EXE 可执行文件。

3. 行调试,分析每条指令的寻址方式,验证操作数所在的地址空间。实验总结

1. 通过本次实验,可以正确的编写传送类指令与算术运算类指令、并了解了编译链接调试的过程,检查程序结果的正确与否,会观察分析。

2. 更加清楚的能分析各种运算指令,并对其有了更深的理解。

3. 实验过程中必须认真仔细,特别是在应用逻辑运算指令时,法正常进行,必须返回去查找错误,费时费力。

逻辑运算类指令的应用实验,不然一旦有一点错误,实验就无

实验题目各种逻辑指令的编程

实验目的

1、掌握在 PC 机上各种逻辑指令的用法

2、熟悉各种逻辑指令的用法

实验内容

在上次编辑七种寻址方式实验的中加入各种逻辑指令的运算,并且调试。

程序如下

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS

DDATA SEGMENT

MSR DB 'HELLO,WORLD!$'

LEN EQU $- MSR

DDATA ENDS

EXDA SEGMENT

MSD DB LEN DUP(?)

EXDA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DDATA,ES:EXDA

START: MOV AX,DDA TA

MOV DS,AX MOV AX,EXDA MOV ES,AX

MOV SI,OFFSET MSR

MOV DI,OFFSET MSD

MOV CX,LEN

MOV BX,0

NEXT: MOV AL,MSR[BX]

MOV ES:MSD[BX],AL INC BX LOOP NEXT PUSH ES POP DS

MOV DX,OFFSET MSD

MOV AH,9

INT 21H

MOV AX,2233H

MOV DX,3344H ADD AX,DX ADD AL,DL

ADD AX,5566H

ADC AL,DH DIV BL

MOV BX,6677H MUL BX

SBB AX,DX

MOV AX,4C00H

INT 21H

CODE ENDS

END START

实验步骤

1.运行编译器,编译程序。

2.单击编译,保存。

3.调试程序。

实验总结

1. 通过实验,熟悉了各种逻辑指令的用法,了解了其程序的编译。

2. 调试程序的过程中需要不断地发现问题、解决问题。

3.实验过程中,各指令的用法十分复杂,需要不断练习,熟悉指令的运行目的。

4.不同的程序代码,在不同的环境的运用方式也不同,这是我们必须要掌握的技能。

实验题目

数据传送实验

实验目的

(1)熟悉 Tdpit 集成环境和调试器的使用。

(2)掌握与数据有关的不同寻址方式。

实验内容本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。

实验程序如下:

DDATA 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,DDATA

MOV DS,AX ;装载数据段寄存器

MOV AX,EXDA

MOV ES,AX ;装载附加数据段寄存器

MOV SI,OFFSET MSR设置 SI

MOV DI,OFFSET MSD ;设置 DI

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 ;利用DOS功能调用返回 DOS状态

INT 21H

CODE ENDS

END START

将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示:

MOV BX,0

MOV CX,LEN

NEXT: MOV AL,MSR[BX]

MOV ES:MSD[BX],AL

INC BX

LOOP NEXT

实验步骤

(1)运行 Tdpit 软件,选择文件菜单,点击新建进行实验程序的编写。

(2)使用编译菜单中的编译和连接对实验程序进行汇编、连接。

(3)使用编译菜单中的运行,运行程序,观察运行结果。

(4)使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。

(5)更改数据区中的数据,考察程序的正确性。

实验题目

基本I/O 接口电路设计实验

实验目的

(1) 掌握基本 I/O 接口电路的设计方法。

(2)熟练汇编语言 I/O 端口操作指令的使用。

实验内容

利用三态缓冲器 74LS245、锁存器74LS374设计微机总线和外部设备的数据通道,实现微机对外部输入数据的读取和对输出数据的输出。用开关及 LED 显示单元的开关和数据灯作为输入和输出显示设备,将读到开关的数据显示在数据灯上。

实验原理1.输入接口设计

输入接口一般用三态缓冲器实现,外部设备输入数据通过三态缓冲器,通过数据总线传送给微机系统。74LS245 是一种 8 通道双向的三态缓冲器。 DIR 引脚控制缓冲器数据方向, DIR 为 1 表示数据由A[7:0]至B[7:0],DIR为0表示数据由B[7:0]至A[7:0]。G引脚为缓冲器的片选信号,低电平有效。

2.输出接口设计

输岀接口一般用锁存器实现,从总线送岀的数据可以暂存在锁存器中。74LS374是一种8通道

上沿触发锁存器。D[7:0]为输入数据线,Q[7:0]为输岀数据线。CLK引脚为锁存控制信号,上升沿有效。当上升沿到时,输岀数据线锁存输入数据线上的数据。OE 引脚为锁存器的片选信号,低

电平有效。

3.输入输岀接口设计

用74LS245和74LS374可以组成一个输入输岀接口电路,既实现数据的输入又实现数据的输岀,

输入输岀可以占用同一个端口。是输入还是输岀用总线读写信号来区分。总线读信号IOR和片选

信号CS相或”来控制输入接口 74LS245的使能信号 G。总线写信号IOW和片选信号 CS相或”来控制输岀接口 74LS374的锁存信号CLK实验系统中基本输入输岀单元就实现了两组这种的电路。

实验说明及步骤

本实验实现的是将开关K[7:0]的数据通过输入数据通道读入CPU的寄存器,然后再通过输岀

数据通道将该数据输岀到数据灯显示,该程序循环运行,直到按动键盘上任意按键再退岀程序。实验步骤如下:

(1)确认从PC机引岀的两根扁平电缆已经连接在实验平台上。

(2)如图 1 所示连接实验线路。

(3)首先运行CHECK程序,查看并记录与片选信号对应的I/O端口始地址。

(4)参考实验流程图编写程序,注意使用正确的端口地址,然后编译链接。

(5)运行程序,拨动开关,观看数据灯显示是否正确。

实验程序如下:

IOYO EQU ODOOOH 片选IOYO对应的端口始地址?*****************************************************************

MY8255_ _A EQU IOY0+00H*4 ;8255的A 口地址

MY8255_ _B EQU IOY0+01H*4 ;8255的B 口地址

MY8255_ _C EQU IOY0+02H*4 ;8255的C 口地址

MY8255_ MODE EQU IOY0+03H*4 ;8255的控制寄存器地址

STACK1 SEGMENT STACK

DW 256 DUP⑺

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE

START: MOV DX,MY8255_MODE

MOV AL,82H

OUT DX,AL

LOOP1: MOV DX,MY8255_B

IN AL,DX

MOV DX,MY8255_A

OUT DX,AL

MOV AH,1

INT 16H

JZ LOOP1

;初始化8255工作方式

;工作方式0, A 口输出,B 口输入

;判断是否有按键按

;无按键则跳回继续循环,有则退出

QUIT: MOV AX,4C00H

;结束程序退出INT 21H

CODE ENDS

END START

实验题目

8255并口控制器应用实验

实验目的

⑴掌握8255的工作方式及应用编程。

⑵掌握8255的典型应用电路接法。

实验内容

⑴ 基本输入输岀实验。编写程序,使8255的A 口为输岀,B 口为输入,完成拨动开关到数据

灯的数据传输。要求只要开关拨动,数据灯的显示就改变。

(2)流水灯显示实验。编写程序,使8255的A 口和B 口均为输岀,实现16位数据灯的相对循环显示。

实验原理

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数

据传送总是并行的,即可以同时传递8位、16位、32位等。8255可编程外围接口芯片是In tel

公司生产的通用并行 I/O接口芯片,它具有 A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/岀方式、方式1--选通输入/岀方式、方式2--双向选通工作

方式。

实验说明及步骤

1 ?基本输入输出实验

本实验使8255端口 A工作在方式0并作为输岀口,端口 B工作在方式0并作为输入口。用一组开关信号接入端口 B,端口 A输岀线接至一组数据灯上,然后通过对8255芯片编程来实现

输入输出功能。

实验步骤如下。

(1)确认从PC机引岀的两根扁平电缆已经连接在实验平台上。

(2)如图1所示连接实验线路。

⑶ 首先运行CHECKS序,查看I/O空间始地址。

(4)利用查岀的地址编写程序,然后编译链接。

(5)运行程序,拨动开关,看数据灯显示是否正确。

D7D6D5D4WD2D1D0A1ADWRRDCS -123 西LED显示单元>Ti/i

XD5

2X12

7工

^=3=8

XIOW

DTT"

2.流水灯显示实验

首先分别向A 口和B 口写入80H 和01H,然后分别将该数右移和左移一位,再送到端口上, 这样循环下去,从而实现流水灯的显示。

实验步骤如下:

(1)确认从PC 机引岀的两根扁平电缆已经连接在实验平台上。 ⑵ 首先运行CHECKS 序,查看I/O 空间始地址。 (3) 利用查岀的地址编写程序,然后编译链接。 (4) 如图2所示连接实验线路。 (5) 运行程序,看数据灯显示是否正确。

流水灯程序如下

IOY0 EQU 0D000H 片选IOYO 对应的端口始地址

?*****************************************************************

MY8255_ _A EQU IOY0+00H*4 ;8255的A 口地址 MY8255_ _B

EQU

IOY0+01H*4

;8255的B 口地址 MY8255_ _C EQU IOY0+02H*4 ;8255的C 口地址

MY8255_ MODE EQU IOY0+03H*4 ;8255的控制寄存器地址

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS DATA SEGMENT LA DB LB

DB

DATA ENDS CODE SEGMENT

XD7

yrn 1

■XD2

yutr o —o

o —o

76543210

DDDDDDDD

ABC

-u

电位器

;定义数据变量

XIOW ROR I OYO JLK

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,MY8255_MODE MOV AL,80H

OUT DX,AL

;定义8255 工作方式

;工作方式0, A 口和B 口为输出

MOV DX,MY8255_A

MOV AL,80H OUT

DX,AL MOV LA,AL

MOV DX,MY8255_B

MOV AL,01H OUT

DX,AL MOV LB,AL

LOOP1: CALL DALLY

MOV AL,LA

ROR AL,1

MOV LA,AL

MOV DX,MY8255_A

OUT DX,AL

MOV AL,LB

ROL AL,1

MOV LB,AL

MOV DX,MY8255_B

OUT DX,AL

MOV AH,1

INT 16H

JZ LOOP1

QUIT: MOV AX,4C00H

INT 21H

DALLY PROC NEAR PUSH CX

PUSH AX

MOV CX,3FFH D1:

MOV AX,0FFFFH

;写A 口发出的起始数

;写B 口发出的起始数

;将A 口起始数据右移再写入A 口;将B口起始数据左移再写入B 口

;判断是否有按键按下

;无按键则跳回继续循环,有则退出;结束程序退出

;软件延时子程序

D2: DEC AX

JNZ D2

LOOP D1

POP AX

POP CX

RET DALLY ENDP

CODE ENDS

END START

实验题目

AID转换实验

实验目的

(1)学习掌握模/数信号转换基本原理。

⑵掌握ADC0809芯片的使用方法。

实验内容

编写实验程序,用 ADC0809完成模拟信号到数字信号的转换。输入模拟信号由A/D转换单元可调电位器提供的 0?5V,输岀数字量显示在显示器屏幕上。显示形式为:AD0809 : IN0 XX。

实验原理

ADC0809包括一个8位的逐次逼近型的 ADC部分,并提供一个 8通道的模拟多路开关和联合寻址逻辑。用它可直接输入 8个单端的模拟信号,分时进行 A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。 ADC0809的主要技术指标为:

分辨率:8位

单电源:+ 5V

总的不可调误差:士 1LSB

转换时间:取决于时钟频率

模拟输入范围:单极性0?5V

时钟频率范围:10KHZ?1280KHZ

ADC0809的地址信号与选中通道的关系如表1所示。

表1

实验步骤及说明

⑴确认从PC机引岀的两根扁平电缆已经连接在实验平台上。

⑵首先运行CHECK程序,查看I/O空间始地址。

(3)利用查岀的地址编写程序,然后编译链接。

(4)如图1所示连接实验线路。

(5)运行程序,调节电位器,观察屏幕上显示的数字量输岀。

XD7

7DT XE5E T 0—0

0—0

D7

D6

D5

D4

D3

D2

D1

DO

单元

+5V

WR

RE

CS

CLK

OO

电位器

程序如下:

IOYO EQU ODOOOH 片选IOYO对应的端口始地址?*****************************************************************

AD0809 EQU IOY0+00H

STACK1 SEGMENT STACK

DW 256 DUP⑺STACK1 ENDS

DATA SEGMENT

STR1 DB 'AD0809:IN0 $' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LOOP1: MOV DX,AD0809

OUT DX,AL

CALL DALLY

MOV DX,OFFSET STR1

MOV AH,9

INT 21H

;AD0809的端口地址

;定义显示的字符

;启动A/D转换

;显示字符串AD0809:IN0

MOV DX,AD0809

IN AL,DX

;读出转换结果

相关主题
相关文档
最新文档