微机原理实验指导书4-22资料

微机原理实验指导书4-22资料
微机原理实验指导书4-22资料

微机原理及接口互动平台实验指导书

计算机学院

目录

实验一熟悉实验系统及设备----------------------------------------------------------3 实验二汇编程序设计及调试----------------------------------------------------------6 实验三8255A接口实验----------------------------------------------------------------8 实验四8253接口实验-----------------------------------------------------------------10 实验五8253拓展实验-----------------------------------------------------------------11 实验六8259中断控制器实验--------------------------------------------------------12实验七0809A/D转换器实验----------------------------------------------------------14 实验八LED显示实验------------------------------------------------------------------16 实验九交通灯设计实验----------------------------------------------------------------17 实验十0809A/D转换器综合实验---------------------------------------------------19 实验十一D/A数模转换-----------------------------------------------------------------21

实验一熟悉实验系统及设备

一、实验目的:

通过编写一个简单的汇编语言程序并在实验仪上调试,熟悉实验系统及设备,掌握上机的步骤。

二、实验仪器设备

WJXMH-2型实验实训平台,PC机一台。

三、实验步骤:

1、进入XP,双击Mkstudio,实验台加电。

2、设置通信端口,点击“确定”,通信正常并在在状态栏显示“联机调试”。

图1.1 设置通信端口

3、单击文件/新建,输入实现两数相加的加法源程序,存E盘,文件主名长度不能超过8个字符。

注意:由于编译器的要求,请确保路径和文件名不合中文和空格,不要将文件放在“桌面”、“我的文档”等路径,扩展名必须是“.asm”。

4、单击工具栏的“编译”对源文件进行编译和链接,若程序没有语法错误,系统自动加载。若有错误则改正、存盘、编译,直至正确。

图1.2 快捷图标

5、调试运行,F8单步,F9连续。若有错,则查错后重运行。

6、检查结果。如果结果在寄存器中,可以直接从寄存器窗口看相应的寄存器中的内容正确与否;如果结果在存储器中,点击界面下的“内存”,在内存区单击鼠标右键切换到“DS数据段”查看结果。

6、试验完毕后关闭设备电源。

四、参考程序:1.asm

data segment

d1 db 12h

d2 db 34h

d3 db 0

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov al,d1

add al,d2

mov d3,al

mov ah,4ch

int 21h

code ends

end start

五、结果查看

1、反汇编窗口

点击视图中的反汇编窗口,如图1.3所示。点击成功后,会出现图1.4所示的反汇编窗口。

图1.3 快捷图标

图1.4 反汇编窗口

指令对应的机器码存放在代码段窗口,如图1.5所示。

图1.5 代码段窗口

运行程序结束后,从寄存器窗口如图1.6所示,可以看到AL的内容为46H。或者从内存窗口如图1.7所示,查看DS数据段,看到D3单元的内容变为46H。

图1.6 寄存器窗口

图1.7 数据段窗口

六、拓展实验内容:

1、MKStudio脱机演示:可以在没有实验台的机器上调试纯软件的汇编程序。

(1)关闭实验台电源。打开Mkstudio,选择“脱机演示”

(2)编译选择:“编译并启用turbo debugger调试”

(3)选择turbo debugger,出现如下图之后,直接在这个框按回车就能进入调试。F7跟踪、F8单步、F9全速、Alt+F5看用户屏幕、在主界面看F10回车可调出菜单、Alt+X退出。

2、用masm汇编、链接、调试程序

(1)用masm汇编、link链接、debug调试程序(参考 4.7 汇编程序上机过程P155 )

实验二汇编程序设计及调试

一、实验目的:

通过编写一个较复杂的汇编语言程序,在微机原理实验仪或PC机上进行调试,以便掌握汇编语言程序设计的方法及步骤。

二、实验仪器设备

WJXMH-2型实验实训平台,PC机一台。

三、实验步骤:

1、进入XP,双击Mkstudio,实验台加电。

2、设置通信端口见实验配套指导书。

3、单击文件/新建,输入实现统计正数、零和负数的个数的源程序,存E盘,文件名长度不能超过8个字符。

4、单击汇编链接,系统自动加载。若有错误则改正。

5、调试运行,F8单步,F9连续。若有错,则查错后重运行。

6、试验完毕后关闭设备电源。

四、参考程序:2.asm

data segment

sty1 db -1,-128,0,0,0,1,15,7,127

nm db 0;负数

zm db 0;零

pm db 0;整数

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov cx,9

mov bx,offset sty1

aa: mov al,[bx]

cmp al,0

jge l1

inc nm

jmp bb

l1: jg l2

inc zm

jmp bb

l2:inc pm

bb:inc bx

loop aa

stop: mov ah,4ch

int 21h

code ends

end start

五、结果查看

运行程序结束后,从DS窗口看到-1,-128,0,0,0,1,15,7,127对应的补码为FFH,80H,00,00,00,01,0F,07,7F,之后存放的是统计出来的正数、负数、零的个数为02,03,04。

图2 DS数据段窗口

实验三8255A接口实验

一、实验目的

1、掌握8255的工作原理及8255和CPU的接口方法。

2、掌握8255A的工作方式和编程方法。

二、实验内容

用8255 PA通过逻辑电平开关作输入口,PB通过发光二极管作输出口。

三、实验设备

WJXMH-2型实验实训平台,PC机一台,插拔导线

四、程序流程

五、实验步骤

图3 8255示意图

1、实验连线

(1) 8255并行口的CS连接中板B8单元的300;

(2) 8255并行口的A1, A0连接中板B13单元的A1, A0;

4) 8255并行口的PA7~PA0分别连接K7~K0、PB7~PB0分别连接L7~L0。2、实验程序的编写、装载与运行

编写程序,编译、连接并装载到实验台,用全速方式运行程序。

3、观察运行结果

在全速运行状态下,拨动K7~K0,观察L7~L0发光二极管是否对应亮或灭。

4、终止运行

按“暂停图标”,使系统无条件退出该程序的运行返回待令状态。

五、

六、实验参考程序8255.asm

code segment

assume cs:code

start:mov dx,303h

mov al,10010000b

out dx,al

again:mov dx,300h;A口作输入

in al,dx

mov dx,301h;B口作输出

out dx,al

jmp again

code ends

end start

七、思考

用8255 的PB口作输入口,PC口作输出口实现上述功能如何修改电路和程序?

实验四8253接口实验

一、实验目的

1、掌握8253的工作原理及8253和CPU的接口方法。

2、掌握8253的工作方式和编程方法。

二、实验内容

验证8253的方式0与方式3的波形图。

三、实验设备

WJXMH-2型实验实训平台,PC机一台,插拔导线

四、电路原理图

图4 8253连接示意图

五、实验步骤

1、实验连线

(1) 8253并行口的CS连接中板B8单元的300H;

(2) 8253并行口的A1, A0连接中板B13单元的A1, A0;

(3) 8253的GATE1接+5V,CLK1接正脉冲,OUT1接发光二极管

2、实验程序的编写、装载与运行

编写程序,编译、连接并装载到实验台,用全速方式运行程序。

3、观察运行结果

在全速运行状态下,按下脉冲发生器,观察LED的亮灭情况。

4、终止运行

按“暂停图标”,使系统无条件退出该程序的运行返回待令状态。

五、

六、实验参考程序8253.asm

code segment

assume cs:code

start:mov al,01010000b

mov dx,303h

out dx,al

mov al,4

mov dx,301h

out dx,al

code ends

end start

七、思考

输出OUT1接发光二极管,输入接手动脉冲信号。 N=4时,工作在方式0,按几下手动脉冲发生器使发光二极管灭掉?同样验证其他工作方式。

实验五8253拓展实验

一、实验目的

1、掌握8253的工作原理及8253和CPU的接口方法。

2、掌握8253的工作方式和编程方法。

二、实验内容

练习8253的级联使用,来实现定时1S。

三、实验设备

WJXMH-2型实验实训平台,PC机一台,插拔导线

四、电路原理图

图5 8253级联连接示意图

五、实验步骤

1、实验连线

(1) 8253并行口的CS连接中板B8单元的300H;

(2) 8253并行口的A1, A0连接中板B13单元的A1, A0;

(3) 8253的GATE1接+5V,CLK1接0.5MHZ,OUT1接CLK2,GATE2接+5V,OUT2接LED灯。

2、实验程序的编写、装载与运行

编写程序,编译、连接并装载到实验台,用全速方式运行程序。

3、观察运行结果

在全速运行状态下,观察LED的亮灭情况,1S间隔亮灭。

4、终止运行

按“暂停图标”,使系统无条件退出该程序的运行返回待令状态。

六、实验参考程序8253ji.asm

code segment

assume cs:code

start:mov al,01010101b

mov dx,303h

out dx,al

mov al,0

mov dx,301h

out dx,al

mov al,10110111b

mov dx,303h

out dx,al

mov ax,100h

mov dx,302h

out dx,al

mov al,ah

out dx,al

code ends

end start

实验六8259中断控制器实验

一、实验目的

掌握8259的工作原理,掌握8259接口芯片与系统的连接以及与外设的连接方法,掌握8259初始化程序的编写方法、主程序的编写方法、中断处理程序的编写方法以及查看实验结果的方法。

二、实验仪器设备

1、WJXMH-2型实验实训平台

2、PC机

三、实验主要步骤:

1.根据实验要求设计实验原理图,并标明端口地址。如果按下图连接得到8255的端口地址分别为2F0H、2F1H、2F2H、2F3H,8259的奇地址为301H,偶地址为300H。

图6 8259示意图

A7单元的8259片选CS接至300H,IR0接至脉冲源上的正脉冲。A27单元的8255片选CS接至2F0H。8259的INTA、INTR分别与B6单元的的INTA、INTR相连接。将B13单元的系统的地址线A0、A1分别与A27单元的8255的地址总线A0、A1连接。将B13单元的系统的地址线A0分别与A7单元的8259的地址总线A0连接。8255B口的8个端子分别与8个发光二极管依次相连。

2.画出程序框图。

3.根据框图编写程序。(如按图1连接参考程序如下所示)

code segment

assume cs:code

start: mov al,13h ;ICW1,单片使用,上升沿触发

mov dx,300h

out dx,al

mov al,8;ICW2,中断类型号

mov dx,301h;单片不用设置ICW3

out dx,al

mov al,1;ICW4

out dx,al

mov ax,0

mov ds,ax

lea ax,int0

mov ds:[4*8],ax;送偏移地址

mov ax,cs

mov ds:[4*8+2],ax ;送段地址

in al,dx

and al,0feh

out dx,al

mov dx,2f3h

mov al,80h

out dx,al;8255初始化

mov bl,11111110b

mov al,bl

mov dx,2f1h;B口输出接LED灯

out dx,al

sti

repeat:hlt

jmp repeat

int0 proc

rol bl,1

mov al,bl

mov dx,2f1h

out dx,al

mov dx,300h

mov al,20h;设置OCW2,发送中断结束方式

out dx,al

iret ;中断返回

int0 endp

code ends

end start

4.根据原理图连线,并确保连线正确,接触可靠。

5.输入程序进行调试,实现实验题目要求。

6.写出实验报告。

实验现象:B口所接的led灯,每来一个正脉冲,从最低位开始实现循环移位点亮。

思考题:尝试A口接LED灯,从最低位开始实现循环移位点灭。

实验七0809A/D转换器实验

一、实验目的

掌握A/D转换器的工作原理,掌握0809接口芯片与系统的连接以及与外设的连接方法,掌握0809初始化程序的编写方法以及查看实验结果的方法。

二、实验仪器设备

1、WJXMH-2型实验实训平台

2、PC机

三、实验主要步骤:

1.根据实验要求设计实验原理图,并标明端口地址。将B13单元的系统的地址线A0、A1分别与A27单元的8255的地址总线A0、A1连接。A27单元的8255片选CS接至2F0H。8255A口的8个端口分别与8个发光二极管依次相连。

图7 0809 示意图0809的连线:

(B8)300 -- (A20单元)或非门一输入1

(B6)IOW -- (A20)或非门一输入2

(A8)SC/ALE -- (A20)或非门一输出

(B8)300 -- (A20)或非门二输入1

(B6)IOR -- (A20)或非门二输入2

(A8)OE -- (A20)或非门二输出

(A8)IN0 -- (A5)0-5V

运行程序旋动A5单元电位器,观察led灯的亮灭与AD转换值的关系3.根据框图编写程序。(如按图2连接参考程序如下所示)

code segment

assume cs:code

start:mov dx,2f3h

mov al,80h

out dx,al;初始化8255

lp:mov al,00

mov dx,300h

out dx,al;启动A/D转换

mov cx,500

rel:loop rel

in al,dx

mov dx,2f0h

out dx,al;A口接LED灯

jmp lp

code ends

end start

4.根据原理图连线,并确保连线正确,接触可靠。

5.输入程序进行调试,实现实验题目要求。

6.写出实验报告。旋动A5单元电位器,观察LED灯显示的AD转换值

实验八LED显示实验

一、实验目的

掌握LED的显示原理,掌握LED与系统的连接方法,掌握LED显示程序的编写方法以及查看实验结果的方法。

二、实验仪器设备

1、WJXMH-2型实验实训平台

2、PC机

三、实验主要步骤:

1.根据实验要求设计实验原理图,并标明端口地址。

图8 LED连接示意图

第二片的8255片选CS55已接至2DCH,8255B口PB0~PB5分别与键盘区域的Y0~Y5连接在一起,LED数码管为共阳极数码管。内部8255A口PA0~PA7分别与键盘区域的La、Lb、Lc、Ld、Le、Lf、Lg、Lh连接在一起。

2.画出程序框图。

3.根据框图编写程序。

4.根据原理图连线,并确保连线正确,接触可靠。

5.输入程序进行调试,实现实验题目要求。

6.写出实验报告。(如按图4连接参考程序如下所示led.asm)

ata segment

buff db 0,1,2,3,4,5

table db 0bfh,0c2h,0a3h,0a3h,0a1h,0bfh

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov dx,2dfh

mov al,80h

out dx,al

ll:lea si,buff

mov ah,00100000b

rel:mov al,[si]

lea bx,table

xlat

mov dx,2dch ;a口输出段码

out dx,al

mov al,ah

mov dx,2ddh ;B口输出位码

out dx,al

mov cx,100

loop $

inc si

ror ah,1

jnc rel

jmp ll

code ends

end start

思考题:如何显示123456?如果是共阴极的数码管,程序如何修改?

实验九交通灯设计实验

一、实验目的

综合运用可编程并行接口8255A、定时器/计数器8253、中断控制器8259,控制东、西向和南、北向交通灯的定时闪烁。

二、实验仪器设备

1、WJXMH-2型实验实训平台

2、PC机

三、实验主要步骤:

1.根据实验要求设计实验原理图,并标明端口地址。

图9 交通灯示意图

8253片选CS接至2F8H,8253CLK1接0.5M,8253GA TE1接+5V,8253的OUT1接8259的IR0,8259片选CS接至300H,8255片选CS接至2F0H,8255B口PB0、PB1分别与红色发光二极管相连,PB2、PB3分别与绿色发光二极管相连。8259的INTA、INTR分别与系统资源区的INTA、INTR相连接,将8255、8253的A0、A1分别与实验台上的地址总线A0、A1连接,将8259的A0与实验台上的地址总线A0连接。

2.画出程序框图。

3.根据框图编写程序。(如按图5连接参考程序如下所示zong.asm)

code segment

assume cs:code

start: mov al,13h;8255端口2F0H,8259端口300H,8253端口2F8H

mov dx,300h

out dx,al

mov al,8

mov dx,301h

out dx,al

mov al,3

out dx,al

mov ax,0

mov ds,ax

lea ax,int0

mov ds:[4*8],ax

mov ax,cs

mov ds:[4*8+2],ax

in al,dx

and al,0feh

out dx,al;8259初始化

mov dx,2F3h

mov al,80h

out dx,al;8255初始化

mov dx,2FBh

mov al,01110100b

out dx,al;8253初始化

mov dx,2F9h

mov ax,50000;定时0.1s

out dx,al;8253通道1赋初值

mov al,ah

out dx,al

mov bx,0

sti

rel:mov dx,2F1h;8255B口接发光二极管

mov al,11111100b;红色发光二极管亮

out dx,al

a1:cmp bh,5

jl a1;5s到

mov bx,0

mov dx,2f1h

mov al,11110011b;绿色发光二极管亮

out dx,al

a2:cmp bh,5

jl a2

mov bx,0

jmp rel

int0 proc

inc bl

cmp bl,10

jl exit;1s到

mov bl,0

inc bh

exit:iret

int0 endp

code ends

end start

4.根据原理图连线,并确保连线正确,接触可靠。

5.输入程序进行调试,实现实验题目要求。

6.写出实验报告。实验现象:红灯绿灯交替电路相隔5s

思考题:用一片8255A循环检测K1、K2的状态,控制红、绿、黄三灯的点亮,连线如图所示。要求:K1闭合,K2闭合时,黄灯亮;

K1闭合,K2断开时,红灯亮;

K1断开,K2闭合时,绿灯亮;

K1断开,K2断开时,黄灯亮。

已知8255A的端口地址为300H~303H,编制程序。

code segment

assume cs:code

start: mov dx,303h

mov al,10010000b

out dx,al

again: mov dx,300h

in al,dx

and al,03h

cmp al,00h

jz L1

cmp al,01h

jz L2

cmp al,00000010b

jz L3

mov al,11111011b;都打开

jmp L4

L1: mov al,11111011b

jmp L4

L2: mov al,11111101b

jmp L4

L3: mov al,11111110b

jmp L4

L4: mov dx,302h

out dx,al

jmp again

mov ah,4ch

int 21h

code ends

end start

实验十0809A/D转换器综合实验

一、实验目的

掌握A/D转换器的工作原理,掌握0809接口芯片与系统的连接以及与外设的连接方法,掌握0809初始化程序的编写方法以及查看实验结果的方法。

二、实验仪器设备

1、WJXMH-2型实验实训平台

2、PC机

三、实验主要步骤:

1.根据实验要求设计实验原理图,并标明端口地址。将B13单元的系统的地址线A0、A1分别与A27单元的8255的地址总线A0、A1连接。A27单元的8255片选CS接至2F0H。8255A口的8个端口分别与8个发光二极管依次相连。将B13单元的系统的地址线A0与8259的地址总线A0连接。8259片选CS接至300H。8259的IR0与AD0809的EOC相连。8259的INTA、INTR分别与系统资源区的INTA、INTR相连接。

微机原理实验指导书

微机原理及应用实验指导书 南京理工大学机械工程学院 2011年10月10日

实验1 基本操作实验 1. 实验目的 (1) 掌握TD-PITC 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。 (2) 掌握使用运算类指令编程及调试方法; (3) 掌握运算类指令对各状态标志位的影响及其测试方法; (4) 学习使用软件监视变量的方法。 2. 实验设备 PC机一台,TD-PITC 实验装置一套。 3. 实验内容及步骤 通过对样例程序的操作,学会在TD-PITC境下,如何输入汇编语言程序,如何进行汇编语言源程序的汇编、连接、下载和运行;在调试程序的学习过程中,应学会: ●如何设置断点; ●如何单步运行程序; ●如何连续运行程序; ●怎样查看寄存器的内容; ●怎样修改寄存器的内容; ●怎样查看存储器的内容; ●怎样修改存储器的内容。 3.1 实验内容1――――BCD码转换为二进制数 实验内容: 将四个二位十进制数的BCD 码存放于3500H 起始的内存单元中,将转换的二进制数存入3510H 起始的内存单元中,自行绘制流程图并编写程序。 参考实验程序清单如下: SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: XOR AX, AX MOV CX, 0004H MOV SI, 3500H MOV DI, 3510H A1: MOV AL, [SI] ADD AL, AL MOV BL, AL

ADD AL, AL ADD AL, AL ADD AL, BL INC SI ADD AL, [SI] MOV [DI], AL INC SI INC DI LOOP A1 A2: JMP A2 CODE ENDS END START 实验步骤: 1)运行Wmd86 软件,进入Wmd86 集成开发环境。 2)根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1-1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。 图1-1 语言环境选择界面 3)语言选择后,点击新建或按Ctrl+N 组合键来新建一个文档,如图1-2所示。默认文件名为Wmd861。 图1-2 新建文件界面 4)编写实验程序,如图1-3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

微机原理实验报告软件实验1-4

微机原理实验报告 学院:算机科学与软件教育学院 1. 掌握存储器读写方法 2. 了解存储器的块操作方法 二、实验原理 存储器读写和块操作 三、实验设备仪器及材料 计算机,WA VE 6000软件 四、实验过程 S1.asm 代码流程图 data segment Block db 256 dup(55h) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov bx, offset Block ; 起始地址 mov cx, 256 ; 清256 字节Again: mov [bx], byte ptr 0 inc bx ; 地址+1 Loop Again ; 记数减一jmp $ ;死循环code ends end start

五、实验步骤 (1) 进入Wave6000,输入程序并检查,保存程序。 (2) “编译”程序。 (3) “全速执行”程序。 (4) “暂停”程序运行,在“数据窗口(MEMOREY)”查看0400H起始的单元内容,并记录。 (5) 在指令“jmp $”处设断点。“全速执行”程序。 (6) 在“数据窗口(MEMOREY)”查看0400H起始的单元内容,记录并分析实验结果。 六、实验结果及总结 运行前:运行后: 2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH)? 总结:通过本实验,我了解到单片机读写存储器的读写方法,同时也了解到单片机编程,调试方法。学会内存的移动方法,也加深对存储器读写的认识。

微机原理实验报告 学院:算机科学与软件教育学院 实验 课程 名 微机原理实验成绩实验 项目名称实验二、二进制到BCD码转换 指导老 师 1. 了解BCD值和ASCII值的区别。 2. 了解如何将BCD值转换成ASCII值。 3. 了解如何查表进行数值转换及快速计算。 二、实验原理 ASCII码表 三、实验设备仪器及材料 计算机,WA VE 6000软件 data segment Result db 3 dup(?) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov ax, 123 mov cl, 100 div cl mov Result, al ; 除以 100, 得百位数 mov al, ah mov ah, 0 mov cl, 10 div cl mov Result+1, al ; 余数除以 10, 得十位数 mov Result+2, ah ; 余数为个位 数 jmp $ code ends end start 代码流程图

微机原理及应用实验(题目)

微机原理及应用实验 实验一开发环境的使用 一、实验目的 掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。二、实验内容 在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的 30H~7FH 单元清零。 三、实验设备 PC机一台。 四、实验步骤 用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。五、实验思考 1.如果需把30H-7FH 的内容改为55H,如何修改程序? 2.如何把128B的用户RAM全部清零? 六、程序清单 文件名称:CLEAR.ASM ORG 0000H CLEAR: MOV R0,#30H ;30H 送R0寄存器 MOV R6,#50H ;50H 送R6寄存器(用作计数器) CLR1: MOV A,#00H ;00 送累加器A MOV @R0,A ;00 送到30H-7FH 单元 INC R0 ;R0 加1 DJNZ R6,CLR1 ;不到50H个字节,继续 WAIT: LJMP WAIT END 实验二数据传送 一、实验目的 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、实验设备 PC机一台。

微机原理实验四实验报告

实验报告

实验四 8251可编程串行口与PC机通信实验一、实验要求 利用实验箱内的8251A芯片,实现与PC机的通信。 二、实验目的 1.掌握8251A芯片结构和编程方法; 2.了解实现串行通信的硬件环境,数据格式和数据交换协议; 3.了解PC机通信的基本要求。 三、实验原理 (一)8251A芯片工作方式配置: 1. 8个数据位; 2.无奇偶校验位; 3.1个停止位; 4.波特率因子设为16; 5. 波特率设为9600。 (二)8251A主要寄存器说明 图4-1 模式字 图4-2 命令字

CO MMAN D I NSTR UCT ION FO RMA T 图4-3 状态字 (三)8251编程 对8251 的编程就是对8251 的寄存器的操作,下面分别给出8251 的几个寄存器的格式。(1)方式控制字 方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图4-4所示。 图4-4 方式控制字说明 (2)命令控制字 命令控制字用于指定8251 进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。图4-5 所示的是8251 命令控制字各位的定义。 图4-5命令控制字说明 (3)状态字 CPU 通过状态字来了解8251 当前的工作状态,以决定下一步的操作,8251 的状态字如 图4-6所示。 图4-6 状态字说明 四、实验电路连接: 1.CS8251接228H,CS8279已固定接至238H; 2.扩展通信口18中的232RXD连8251RXD ,232TXD连8251TXD;

3.计算机的两个RS232通信口,一个连至仿真机通信口,一个连至扩展通信口18(所有通信口均为DB9)。注意:RS232通信口必须在设备断电状态下插拔! 图4-7 连线图 五、实验内容及要求 1. 将例程从PDF文档中导入到WMD86软件编辑环境中,调试通过。使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。将结果截图保存,贴入实验报告。 2.剔除例程中冗余部分,实现对例程的精简和优化。将精简内容与相应理由写入实验报告。 3.将自己学号的后三位数字通过RS232端口的Txd管脚输出。使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。将结果截图保存,贴入实验报告。 4.通过读状态寄存器的方法,获得发送移位寄存器是否为空的信息,实现学号后三位数字的循环发送。将结果截图保存,贴入实验报告。 5.给每帧数据间添加固定的时间间隔,时间间隔为10000个指令周期。将结果截图保存,

微机原理及应用实验

实验报告1 实验项目名称:I/O地址译码;简单并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握I/O地址译码电路的工作原理,简单并行接口的工作原理及使用方法。 二、预备知识: 输入、输出接口的基本概念,接口芯片的(端口)地址分配原则,了解译码器工作原理及相应逻辑表达式,熟悉所用集成电路的引线位置及各引线用途;74LS245、74LS373的特性及作用。 三、实验内容245输入373输出 使用Protues仿真软件制作如下电路图,使用EMU8086编译软件编译源程序,生成可执行文件(nn . exe),在Protues仿真软件中加载程序并运行,分析结果。 编程实现:读8个开关的状态,根据输入信号控制8个发光二极管的亮灭。 图1-1 245输入373输出 四、程序清单

五、实验结果 六、结果分析 七、思考题: 1、如果用74LS373作输入接口,是否可行?说明原因;用74LS245作输出接口,是否可行?说明原因。

实验报告2 实验项目名称:可编程定时器/计数器;可编程并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握8253的基本工作原理和编程应用方法。掌握8255的工作原理及使用方法。 二、预备知识: 8253的结构、引脚、控制字,工作方式及各种方式的初始化编程及应用。 8255的内部结构、引脚、编程控制字,工作方式0、1、2的区别,各种方式的初始化编程及应用。 三、实验内容: ⑴8253输出方波 利用8253的通道0和通道1,设计产生频率为1Hz的方波。设通道0的输入时钟频率为2MHz,8253的端口地址为40H,42H,44H,46H。通道0的输入时钟周期0.5μs,其最大定时时间为:0.5μs×65536 = 32.768ms,要产生频率为1Hz(周期= 1s)的方波,利用;一个通道无法实现。可用多个通道级连的方法,将通道0的输出OUT0作通道1的输入时钟信号。设通道0工作在方式2(频率发生器),输出脉冲周期= 10 ms,则通道0的计数值为20000(16位二进制)。周期为4 ms的脉冲作通道1的输入时钟,要求输出端OUT1输出方波且周期为1s,则通道1工作在方式3(方波发生器),计数值为100(8位;二进制)。硬件连接如图2-1。

微机原理实验

实验一 MASM For Windows 的使用及顺序程序设计 一、实验目的 1、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。 2、熟悉masm for windows调试环境及DEBUG常用命令的使用 二、实验内容 1.DEBUG常用命令(U、R、D、E、F、T、G、Q)的操作使用 2.编程实现两个16位无符号数的加、减、乘、除运算。 有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。 三、实验设备 PC机一台 四、实验准备 1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。 2) 画出流程图。 3) 写出源程序。 4) 对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。 五、实验步骤 1) 输入源程序。 2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。 六、学生实验报告的要求 1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。 2) 说明程序中各部分所用的算法。 3) 说明主要符号和所用到寄存器的功能。 4) 上机调试过程中遇到的问题是如何解决的。

5) 对调试源程序的结果进行分析。 4) 说明标志位CF、SF和OF的意义。 DEBUG的常用命令 1、R 显示或修改寄存器的内容 命令格式:-R 2、 D 显示存储单元的内容 命令格式:-D[地址1, 地址2] 3、E修改存储单元的内容 命令格式:-E[地址1, 地址2] 4、U反汇编 命令格式:-U[地址1, 地址2] 5、T单步执行 命令格式:-T 6、G连续执行 命令格式:-G[=起始地址, 结束地址] A小汇编 命令格式:-A 7、Q退出DEBUG,返回DOS 实验一源程序 EXAM1-2 .ASM DATA SEGMENT A D B 34H,18H,2 DUP(0),’$’ B DB 56H,83H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,A MOV BL,B ADD AL,BL MOV AH,A+1 MOV BH, B+1 ADC AH, BH MOV A, AL

微机原理实验报告

汇编语言程序设计实验 一、实验内容 1.学习并掌握IDE86集成开发环境的使用,包括编辑、编译、链接、 调试与运行等步骤。 2.参考书例4-8,P165 (第3版161页)以单步形式观察程序的 执行过程。 3.修改该程序,求出10个数中的最大值和最小值。以单步形式观 察,如何求出最大值、最小值。 4.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态。 二、实验目的 1.学习并掌握IDE86集成开发环境的使用 2.熟悉汇编语言的基本算法,并实际操作 3.学会利用IDE86进行debug的步骤 三、实验方法 1.求出10个数中的最大值和最小值 (1)设计思路:利用冒泡法,先对数据段的10个数字的前2个比 较,把二者中大的交换放后面。在对第二个和第三个数比较,把 二者中较大的交换放后面,依此类推直到第十个数字。这样第十 位数就是10个数里面最大的。然后选出剩下9个数字里面最大 的,还是从头开始这么做,直到第九个数字。以此类推直到第一 个数字。

(2)流程图 2.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态

(1)设计思路:结果存放在sum里面,加数是i(初始为1),进行 100次循环,sum=sum+I,每次循环对i加1. (2)流程图: 四、 1.求出10个数中的最大值和最小值

DSEG SEGMENT NUM DB -1,-4,0,1,-2,5,-6,10,4,0 ;待比较数字 DSEG ENDS CODE SEGMENT ASSUME DS:DSEG,CS:CODE START:MOV AX,DSEG MOV DS,AX LEA SI,NUM MOV DX,SI MOV CL,9 ;大循环计数寄存器初始化 NEXT1:MOV BL,CL ;大循环开始,小循环计数器初始化MOV SI,DX NEXT2:MOV AL,[SI+1] CMP [SI],AL ;比较 JGGONE ;如果后面大于前面跳到小循环末尾CHANGE:MOV AH,[SI] ;交换 MOV [SI+1],AH MOV [SI],AL JMP GONE GONE:add SI,1 DEC BL JNZ NEXT2

80x86微机原理与接口技术实验指导书

80x86微机原理与接口技术 实验指导书 长安大学信息工程学院电子信息与通信工程实验室

第1章 80X86 微机原理及其程序设计实验 本章主要介绍汇编语言程序设计,通过实验来学习80X86 的指令系统、寻址方式以及程序的设计方法,同时掌握联机软件的使用。 1.1 系统认识实验 1.1.1 实验目的 掌握TD-PITE 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。 1.1.2 实验设备 PC机一台,TD-PITE 实验装置一套。 1.1.3 实验内容 编写实验程序,将00H~0FH 共16 个数写入内存3000H 开始的连续16 个存储单元中。 1.1.4 实验步骤 1. 运行Wmd86 软件,进入Wmd86 集成开发环境。 2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1-1-1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。 图1-1-1 语言环境选择界面 3. 语言选择后,点击新建或按Ctrl+N 组合键来新建一个文档,如图1-1-2所示。默认文件名为Wmd861。 图1-1-2 新建文件界面 4. 编写实验程序,如图1-1-3所示,并保存,此时系统会提示输入新的文件名,输完后

点击保存。 图1-1-3 程序编辑界面 5. 点击,编译文件,若程序编译无误,则输出如图1-1-4所示的输出信息,然后再点击进行链接,链接无误输出如图1-1-5所示的输出信息。 图1-1-4 编译输出信息界面图1-1-5 链接输出信息界面 6. 连接PC与实验系统的通讯电缆,打开实验系统电源。 7. 编译、链接都正确并且上下位机通讯成功后,就可以下载程序,联机调试了。可以通过端口列表中的“端口测试”来检查通讯是否正常。点击下载程序。为编译、链 接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。起始运行语句下会有一条绿色的背景。如图1-1-6所示。

微机原理及应用实验报告81487

实 验 报 告 课 程 名 称 实 验 名 称 实 验 日 期 学 生 专 业 学 生 学 号 学 生 姓 名 教 师 姓 名 成 绩 南京理工大学机械工程学院 微机原理及应用 实验1 DEBUG 操作实验 实验2 汇编程序设计实验 实验3 8253定时/计数器实验 实验4 8255 并行接口实验 年 月 日 至 年 月 日

实验一DEBUG命令及其操作 一、实验目的 1.熟练掌握debug的常用命令,学会用debug来调试程序。 2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。 3.掌握各种寻址方法以及简单指令的执行过程。 二、实验要求 1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。 2.本实验要求在PC机上进行。 3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。三、实验内容 ●实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。 实验报告要求: 1.写出运行结果; 2.小结debug常用命令及使用体会 答:1.原文已给出(略) 2.a 汇编 d显示内存单元内容 e修改单元内存内容 g执行命令 t单步(或多步)调试 n指定文件路径文件名(含扩展名) u反汇编 r查看寄存器值及修改 l加载程序 w写盘命令 体会:提升学习热情和动手能力有助于理解代码执行过程 ●实验内容2 设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。 实验报告要求: 1.写出完成上述功能的程序段; 2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值 答: A100 Mov ax,3000 ;ax:3000 bx:0000 sp:ffee Mov bx,5000 ;ax:3000 bx:5000 sp:ffee Push ax ;ax:3000 bx:5000 sp:ffec

微机原理实验

实验四:分支、循环程序设计 一. 实验目的 1.学习分支程序、循环结构程序的设计和调试方法; 2.学习子程序的定义和调试方法; 3.掌握分支、循环、子程序等程序的基本结构。 二. 实验设备 TDN 86/51或 TDN 86/88教学实验系统一台 三. 实验内容、步骤及要求 1. 设计一数据块间的搬移程序 数据块搬移的基本原则为: 对于两个分离的数据块,从首地址或从末地址开始传送均可。 对于有部分重叠的情况则: 当源数据块首地址>目的数据块首地址时,从数据块首地址开始传送数据。 当源数据块首地址<目的数据块首地址时,从数据块末地址开始传送数据。 2.求某数据区内负数的个数 设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。 3.学生成绩名次表 将分数为1~100之间的10个成绩存入首址为3000H的单元中,3000H+I表示学号为I的学生成绩。编写程序能在3100H开始的区域排出名次表,3100H+I为学号I的学生名次。 4. 求无符号字节序列中的最大值和最小值 设有一字节序列,其存储首地址为3000H,字节数为08H。利用子程序的方法编程求出该序列中的最大值和最小值。 四. 编程练习 (A) 在3500H单元开始中输入数据:09H(数据个数)12H、80H、78H、C8H、00H、00H、FEH、99H、34H,编写程序使其能分别求出数据区中的正数和负数以及零的个数,正数的个数放在3510H单元中,负数的个数放在3511H单元中,零的个数放在3512H单元中. (B) 有三个8位二进制数连续存放在03200H开始的内存单元中,设它们之中至少有两个数是相同的。编写程序找出与另外两数不同的数,把该数所在的地址(段内偏移地址)送到03204H单元,若三个数都相同则送0FFFFH到03204H单元。 (C) 设数据段SCORE单元开始连续存放着20个学生成绩,编写程序统计其中<60,60~69、70~79、80~89,>90分数段的人数,并把统计结果存放到从TOT开始的数据块中。 (数据为:64H,61H,5DH,55H,52H,51H,44H,45H,47H,48H,4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H). (D) 找出一个数据块中的最大数。数据块从偏移地址3002H开始存放,数据块的长度以16位二进制形式存放在3000H、3001H单元,把找出的最大数放到3100H单元中,并把存放最大值的偏移地址存入3101H和3102H的存储单元中。假设数据块中的数都是8位无符号数。 (E) X的值(字节数)分别由3000H、3001H、3002H单元的数决定,对应的结果Y分别存放在3005H、3006H、3007H单元中,完成下列方程: A (X>0) Y= { 0 (X=0)

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

微机原理实验指导书

微机原理实验指导书汕头大学机电系摘录

实验一P1口实验及延时子程序设计 1.实验目的 利用单片机的P1口作为I/O口进行实验验证,掌握利用P1口作为输入口和输出口的编程方法,理解并掌握延时子程序的设计方法。 2.实验设备及器件 IBM PC机一台 DP-51PRO单片机综合仿真实验仪一台 3.实验内容 (1)编写一段程序,用P1口作为控制端口,使D1区的LED轮流点亮。 (2)编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键,按下时LED 亮,不按时LED灭)。 图 1 4.实验要求 学会使用单片机的P1口作I/O口。如果时间充裕,也可以考虑利用P3口作I/O口来做该实验。 5.实验步骤 ①用导线把A2区的J61接口与D1区的J52接口相连。原理如图1所示。 ②先编写一个延时程序。 ③将LED轮流点亮的程序编写完整并调试运行。 ④使用导线把A2区J61接口的P1.0~P1.6与D1区J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区J53的KEY1相连。原理如图3.2(b)所示。 ⑤编写P1.7控制LED的程序,并调试运行(按下K1看是否全亮)。 ⑥A2区J61接口P1.7与D1区J54的SW1相连,然后再运行程序,拨动开关SW1查看结果。

6.实验预习要求 阅读附录内容,理解实验的硬件结构。可以先把程序编好,然后在Keil C51环境下进行软件仿真。 7.实验参考程序 程序1: ORG 8000H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0000H LJMP M ain ORG 8100H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0100H Main: MOV A,#0FFH CLR C MainLoop: CALL Delay RLC A MOV P1,A ;把A的值输出到P1口 SJMP MainLoop Delay: MOV R7, #0 ;延时 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop RET ; END 程序2: ORG 8000H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0000H LJMP Main ORG 8100H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0100H Main:JB P1.7,SETLED ;按键没有按下时,跳转到SETLED CLRLED: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP Main SETLED: SETB P1.0 SETB P1.1

微机原理与单片机实验报告

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 2012 年 6 月 9 日

目录 实验1 EMU8086模拟器的使用 (3) 实验2 数据传送指令的使用 (5) 实验3 多位十六进制加法运算实验 (9) 实验5 循环程序实验 (11) 实验6 由1 到100 求和实验 (13) 实验7 求表中正数_负数_0 的个数实验 (14) 实验8 数据排列实验(冒泡排序) (16) 实验9 系统功能调用(大小写转换) (18) 实验10 阶乘(递归运算) (20) 实验11 ProteusIO工程文件的建立 (21) 实验12 IO口读写实验(245、373) (22) 实验13 8255 接口实验 (24) 实验14 声光报警 (25) 实验总结 (28)

实验1 EMU8086模拟器的使用 一实验要求 利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的: 熟悉EMU8086实验环境 三EMU8086环境: 1 模拟器编辑窗口 2 模拟器调试窗口

四实验内容 实验内容1:新建文件。 运行emu8086 1. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码: MOV AX, 1020H MOV BX, 2030H MOV AX, BX ADD AX, BX MOV [BX], AX MOV [2032H], AX HLT 2. 编译:单击“编译”按钮,对程序段进行编译; 3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。 4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。 5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。 6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。 7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为400毫秒,单击“全速”按钮,运行程序, 8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容 9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序

2013微机原理实验指导书

微机原理实验报指导书 实验一数据传送实验 1.实验名称实验一数据传送实验 2.实验目的 1、掌握微型计算机汇编软件调试汇编源程序的基本操作; 2、熟悉传送指令、简单运算类指令来编写汇编语言源程序; 3、掌握调试过程及实验结果分析; 3.实验仪器 微型计算机一台 4.实验原理或内容 1.数据段从3500H单元开始建立0---15共16个数据区,程序中见此段存入 数据00H,01H,02H---0AH---0FH,运行之,检查并记录结果。 2.将内存3500H开始的共10个单元内容传送到3600H单元开始的数据区中,运行之,记录结果。 5.实验步骤 1.启动Masm for Windows 集成实验环境2009.6。显示如下: 2.输入源程序 在模板处将程序完成,其中模板中段名可以自己修改定义,没有涉及的段可省略不写。 输入汇编语言源程序后,保存程序(规定扩展名为.asm)

3.汇编 编译/汇编成目标文件,单击运行菜单下“编译成目标文件(obj)”,等待系统汇编,若有错误,修改再编译,直至无错误为止。

4.连接 生成可执行文件。单击运行菜单下“生成可执行文件(exe)”,等待系统对汇编生成的.obj文件进行连接,生成相应的可执行文件。若有错误,修改错误重复3和4操作,直至无错误为止。

5.在DEBUG调试环境下进行程序的调试 1、反汇编。u回车 -u0000回车 2、单步运行。-T=0000回车 -T回车 3、连续运行。G=起始偏移地址结束偏移地址 4、内存单元内容显示。-Dds:3500回车 5、内存单元内容的修改。-EDS:3500回车.键入修改后内容再空格 完成后回车 6、查看修改寄存器。-R回车 -R跟寄存器名,显示寄存器内容:后可跟修改内容 -R IP 可查看修改IP值 7、退出debuf。Q命令 6.数据与结果 将运行结果记录于此处

微机原理及应用 上机实验报告2 数据传送

课程名称:_________微机原理及应用___________指导老师:_____钟崴_______成绩:__________________ 实验名称:_________数据传送___________实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求(必填) 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容和原理(必填) 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、主要仪器设备(必填) PC机一台。 四、操作方法和实验步骤 逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。 五、程序清单 1. ORG 0000H CLEAR MOV R0,#30H ;间接寻址 MOV A,#40H ;立即寻址 MOV @R0,A ;间接寻址 MOV A,30H ;直接寻址 MOV DPTR,#0100H ;间接寻址 MOV A,#36H MOVX @DPTR,A MOV R0,#50H ;立即寻址 MOV A,#10 MOVC A,@A+DPTR ;变址寻址 END

微机原理实验4

学生实验报告 学院:软件与通信工程学院 课程名称:微机原理与接口技术 专业班级:电信141班 姓名: 学号:

学生实验报告(1) 一、实验综述 1、实验目的及要求 (1)实验目的 1.加深对锁存器和缓冲器的基本原理的了解; 2.掌握I/O口编程的基本方法; 3.掌握基本I/O口的扩展方法及编程方法。 (2)实验要求 实验原理: 实验原理图如图所示,锁存器74LS373与发光二极管LED1~LED8; 缓冲器74LS245与K1~K8开关相连,本实验为模拟灯亮暗实验,开关闭合对应LED亮。 实验要求: 1、编写程序使开关Ki闭合时,对应LEDi灯亮; 2、编写程序:开关K8闭合时,实现八个LED灯从上到下循环点亮;K8断开停止循环; 3、编写程序实现八个LED灯从两边到中间,从中间到两边循环点亮,按下K1停止循环。 2、实验仪器、设备或软件 电脑,Masm for windows集成实验环境共享版2015,DOSBOX,proteus 7 professional 二、实验过程(实验步骤、记录、数据、分析) 实验步骤: 1、按图连好实验线路,分析电路中输入和输出端口的地址。 2、编写程序、调试生成.EXE文件,加载到仿真电路CPU8086中,运行Proteus。 3、观察电路运行判断是否实现程序功能,并完善程序。

实验1: DATAS SEGMENT ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV DX,600H ;IO3#的地址为600H L1: IN AL,DX ;读输入口的开关状态 NOT AL ;取反 OUT DX,AL;写输出口,使对应LED灯点亮 JMP L1 MOV AH,4CH INT 21H CODES ENDS END START 实验2: DATA SEGMENT TAB DB 81H,42H,24H,18,24H,42H,81H;此处输入数据段代码DATA ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,600H MOV AH,01H LP1:MOV AL,AH OUT DX,AL MOV CX,2801H WAIT1:NOP NOP ;延时

微机原理与接口技术实验指导书1_[1]...

微机原理与接口技术实验指导书 编者:王亭岭 华北水利水电学院 电气学院自动化教研室 二零一二年三月

目录 实验一标志寄存器应用 (1) 实验二指令寻址方式练习 (4) 实验三分支结构程序设计 (6) 实验四循环结构程序设计 (7) 实验五子程序结构程序设计 (8) 实验六DOS系统功能调用程序设计 (10) 实验七BIOS中断调用程序设计 (12) 实验八定时器中断程序设计 (14)

实验一标志寄存器应用 一、实验目的与要求 1.掌握汇编程序的编译过程; 2.掌握8086的标志寄存器的特点。 二、实验内容 微型计算机(80x86系列)。 四、实验参考程序 DATA SEGMENT A DW 123 B DW 456 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX MOV AX , A SUB AX , B MOV SUM , AX MOV AH,4CH INT 21H CODE ENDS END START 五、实验步骤 步骤一、用鼠标单击开始菜单,单击运行。如下图所示:

步骤二、在运行窗口中键入cmd,回车进入命令提示符。如下图所示: 步骤三、在命令提示符中编译汇编源程序并连接*.obj文件。如下图所示:1.C:\>D: 回车 2.D:\ >CD MASM 回车 3.D:\MASM>MASM SY1.ASM 回车 4.D:\MASM>LINK SY1.OBJ 回车

步骤四、在命令提示行中运行并调试汇编程序。如下图所示:1.D:\MASM>SY1.EXE 回车 2.D:\MASM>DEBUG SY1.EXE 回车 六、实验结论 1.程序运行后变量SUM的值是多少? 2.程序运行前后标志寄存器的各标志位有何变化? 3.分析实验结果及所遇到的问题,并说明解决的方法。

微机原理与应用实验报告

微机原理及应用实验报告 班级:机械1301班 :黄佳清 学号:0801130117 座位号: 中南大学机电工程学院

实验一单片机仿真开发机操作和MCS-51指令系统应用 一.实验目的 1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。 三.实验容及步骤(完成分值:60分) 本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真 1.新建工程项目 2.设置工程文件参数 3.编写新程序事例 4.调试程序直至能够运行出结果。 四.实验程序 AJMP MAIN ORG 0030H MAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00H A1: MOV R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H ;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H ;断点,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A3: MOVX A,DPTR MOVX R0,A INC R0 INC DPTR DJNZ R2,A3 DO: LJMP DO END ;部存储器数据块赋值,搬运数据块到外部存储器,再搬运回部数据存储器。 五、附加题 1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光

2.在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元容 3.

微机原理实验报告

微机原理实验报告实验名称:MIPS汇编程序设计 院系:电信学院 班级: 姓名: 指导老师: 一、实验目的: 1.熟悉MIPS汇编程序开发环境,学习使用Qtstim工具。知道如何查看内存空间分配。

2. 了解C语言语句与汇编指令之间的关系。 3. 掌握MIPS汇编程序设计,掌握QTSPIM的调试技术。 4. 了解MIPS汇编语言与机器语言之间的对应关系。 5. 熟悉常见的MIPS汇编指令 6. 掌握程序的内存映像。 二、实验内容 1.用汇编程序实现以下伪代码:要求使用移位指令实现乘除法运算。Int main () { Int K,Y; Int Z[50]; Y=56; For(k=0;k<50;K++) Z[k]=Y-16*(k/4+210); } 三、程序设计及分析 1.C语言分析: 有两个变量是int型,一个数组型;还有一个循环执行过程。 2.汇编程序实现分析: 首先需要定义用户数据段,获得一个内存空间作为数组空间。 再选定几个寄存器作为K,Y以及输出,其中输出输出和Y可以合用一个寄存器。 3.设计思路:

分配完空间地址后,最重要的是完成循环控制。循环控制有两个思路:可以是先判断后循环;或者是先循环后判断 即如图 slti $t2,$t0,50 #判断k 是否于50 beq $t2,$t3($t2=1循环,否则结束。) 四、程序实现及调试分析

1.汇编程序代码实现: 方法一 .data #定义用户数据段 z:.space 200 #数组为int型,大小为50,所以占内存4*50 str:.asciiz " "#输出结果之间的空隙 .text main: la $s0,z #$s0 #为数组在z[] li $t0,0 #$s1 #代表k计数,初始值为0 li $t1,56 #$t2 #代表Y,初值为56 loop: slti $t2,$t0,50 #判断k是否于50 beq $t2,$0,done #当k大于等于50,跳转结束 srl $t3,$t0,2 #k/4 addi $t3,$t3,210 #k/4+210 sll $t3,$t3,4 #16*(k/4+210) sub $t3,$t1,$t3 #y-16*(k/4+210) sw $t3,0($s0) #写进z[k] li $v0,1 #输出 addi $a0,$s0,0

相关文档
最新文档