微机原理实验源程序配合伟福lab8000试验箱使用

微机原理实验源程序配合伟福lab8000试验箱使用
微机原理实验源程序配合伟福lab8000试验箱使用

实验一汇编语言上机实验

一、实验目的

1、熟悉掌握汇编程序的编辑、编译、连接、运行,要求在Debug状态下查看结果。

2、熟悉Debug对程序进行调试的方法及步骤。

3、熟悉掌握8086常用的汇编语言指令。

4、掌握简单的程序设计方法。

二、实验属性验证性实验。

三、实验仪器设备及器材

计算机(含有汇编软件)。

四、实验要求

1、实验前:在熟练掌握指令系统的基础上,要求学生对上机基础知识(见附录A、B、和C)有一定的了解,能掌握汇编语言的上机过程及常用的DEBUG调试命令,按要求写出预习报告;

2、实验时:认真理解实验内容,掌握汇编程序的编辑、编译、连接、运行及Debug程序的使用;

3、实验后:写出实验报告(包括程序流程图、源程序、实验结果)。

五、实验内容及原理

1、内存中存放有两个双字的数据,用加法指令和带进位加法指令完成两数相加。用Debug观察相加结果。相加时应注意,低位字在前、高位字在后,高位字与高字位、低位字与低位字对应相加,高位字相加时,应采用带进位的加法指令。

实验参考程序如下:

DA TA SEGMENT

BUFFER1 DW 20H,5040H

BUFFER2 DW 2434H,2034H

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA ;取数据段段基址

MOV DS,AX

LEA SI,BUFFER1 ;取BUFFER1的有效地址送指针SI

MOV AX,[SI]

MOV DI,OFFSET BUFFER2 ;取BUFFER2的有效地址送指针DI

ADD AX,[DI] ;低位字相加

MOV [SI],AX ;相加和送变量BUFFER1保存

ADD SI,2 ;修改指针,指向高位字

ADD DI,2

MOV AX,[SI]

ADC AX,[DI]

MOV [SI],AX

MOV AH,4CH;返回DOS,但如在DEBUG下调试,

INT21H ;可不用此软中断

HLT ;暂停

CODE ENDS

END START

2.码制转换:把寄存器中(或存储器中)一个字的组合BCD码,转换为4位ASCII码,

存入相应的内存单元中,并在DEBUG状态下查看运行结果。(一个字的组合BCD码包含4位BCD码,将其依次分解为4个非组合BCD码,分别加上30H,即成为ASCII 码,并存入内存单元)

D SEGMENT

BUF DW 2756H

RES DB ?,?,?,?,?

D ENDS

C SEGMENT

ASSUME CS:C,DS:D

START:

MOV AX,D

MOV DS,AX

LEA SI,BUF

MOV AX,[SI]

MOV BL,AL

MOV BH,AH

MOV RES+4,BH

AND AL,0FH

ADD AL,30H

MOV RES+3,AL

MOV CL,4

SHR BL,CL

AND BL,0FH

ADD BL,30H

MOV RES+2,BL

AND BH,0FH

ADD BH,30H

MOV RES+1,BH

MOV CL,4

MOV BH,RES+4

SHR BH,CL

AND BH,0FH

ADD BH,30H

MOV RES,BH

HLT

C ENDS

END START

3、设内存数据区有若干个大小写混合英文ASCII码字母。将其转换为全部大写。并存入原字符串后的连续的存储单元中

D SEGMENT

A1 DB 'Ghij'

A2 DB ?,?,?,?,?,?,?,?,?,?,?,?

D ENDS

C SEGMENT

ASSUME CS:C, DS:D

START:

MOV AX,D

MOV DS,AX

MOV CX,4

MOV BX,0

LEA SI,A1

A11:MOV AL,[SI]

CMP AL,61H

JB DE1

SUB AL,20H

INC BX

MOV A2+[BX],AL

INC SI

DEC CX

CMP CX,0

JA A11

JMP A12

DE1:INC BX

MOV A2+[BX],AL

INC SI

DEC CX

JZ A12

JMP A11

A12: MOV AH,4CH

INT 21H

RET

C ENDS

END START

4、设有30个学生的成绩

分别为90,75,55,60,63……。试编写程序分别统计低于60、60~69、70~79及80~100分学生人数,并存入到S1、S2、S3、S4,将统计个数分别在CRT上显示(按十进制数形式进行显示)。

CJ segment

shu db 88,99,35,66,77

DB 39,88,88,99,98,98,90

db 87,88,82,85,86,75,89,96,95,93,92,91,90,88,87,86,89,99

ZRS EQU $-SHU

RS DB ?

DY80 DB 0

DY70 DB 0

JGS DB 0

BJG DB 0

; RS DB ?

RSXS DB "TOAL NUMBER="

RSD DB 0,0,0DH,0AH

XS80 DB ">=80:"

JG80 DB 0,0

DB 0DH,0AH ;

XS70 DB ">=70:"

JG70 DB 0,0

DB 0DH,0AH ;

XSJG DB ">=60:"

JGSD DB 0,0

DB 0DH,0AH ;

XSBJG DB "<60:"

BJGD DB 0,0,"$"

CJ ENDS

STAC SEGMENT STACK

STA DB 100 DUP(?)

TOPP EQU 100

STAC ENDS

DAIMA SEGMENT

ASSUME CS:DAIMA,DS:CJ,SS:STAC

KAISHI: MOV AX,CJ

MOV DS,AX

MOV AX,STAC

MOV SS,AX

MOV SP,TOPP

MOV SI,OFFSET SHU

MOV CX,ZRS

MOV RS,CL

AGGG: MOV AL,[SI]

CMP AL,80

JB NEXT2

INC DY80

JMP NEXT9 NEXT2: CMP AL,70

JB NEXT3

INC DY70

jmp next9 NEXT3: CMP AL,60

JB NEXT4

INC JGS

JMP NEXT9 NEXT4: INC BJG NEXT9: INC SI

LOOP AGGG

LEA SI,DY80

LEA DI,JG80

CALL HTD

LEA SI,DY70

LEA DI,JG70

CALL HTD

; LEA SI,BJG

; LEA DI,BJGD

; CALL HTD

LEA SI,JGS

LEA DI,JGSD

CALL HTD

LEA SI,BJG

LEA DI,BJGD

CALL HTD

LEA SI,RS

LEA DI,RSD

CALL HTD

LEA DX,RSXS

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

HTD PROC NEAR

MOV AL,[SI]

MOV AH,0

MOV BL,10

DIV BL

ADD AL,30H

MOV [DI],AL ;SHIWEI

ADD AH,30H

MOV [DI+1],AH

RET

HTD ENDP

DAIMA ENDS

END KAISHI

5、求2

22c b a y ++=,显示运算结果(十进制形式)。a ,b ,

c 是定义在数据段中的三个单字节的无符号数,结果存放在这三个数之后,约定占2个字节。 SHU SEGMENT

A1 DB 5,3,4

A2 DB ?,?,?,?,?,?,?,?

PFH2 DB 0

PFH3 DB 0

DB 0DH,0AH ,'$'

SHU ENDS

STAC SEGMENT STACK

STA DB 100 DUP(?)

TOPP EQU 100

STAC ENDS

DAIMA SEGMENT

ASSUME CS:DAIMA,DS:SHU, SS:STAC

KAISHI: MOV AX,SHU

MOV DS,AX

MOV AX,STAC

MOV SS,AX

MOV SP,TOPP

MOV SI,OFFSET A1 MOV AX,[SI]

CALL AB1

MOV A2 ,AL

INC SI

MOV AX,[SI]

CALL AB1

MOV A2+1,AL

INC SI

MOV AX,[SI]

CALL AB1

ADD AX,A2+1

ADD AX,A2

MOV A2+6,AL

CALL SJZ

MOV AL,A2+3

MOV PFH2,AL

MOV AL,A2+4

MOV PFH3,AL

LEA DX,PFH2

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

AB1 PROC NEAR

MOV BX,AX

MUL BX

RET

AB1 ENDP

SJZ PROC NEAR

MOV AX,A2+6

MOV BL,10

DIV BL

ADD AL,30H

MOV A2+3,AL

ADD AH,30H

MOV A2+4,AH

RET

SJZ ENDP

DAIMA ENDS

END KAISHI

实验七8255接口模拟交通灯实验

一、实验目的

1、掌握输入输出控制电路的设计方法。

2、深入理解8086CPU与接口电路之间信息传递方式。

3、进一步学习编制数据输入输出的方法。

4、学习双色灯的使用。

二、实验属性综合性实验。

本实验综合了程序设计(判断转移、输入输出控制、延时子程序等)、可编程输入输出接口与输入输出外部设备的电路设计。

三、实验仪器设备及器材

计算机、微机原理综合实验箱。

四、实验要求

1、实验前:熟悉实验内容,并按要求将程序编好并写出预习报告。预习8255结构及命令字格式。

2、实验中:正确连线,掌握接口电路程序设计调试的方法。

3、实验后:写出实验报告(包含程序流程图、源程序、电路连接图,实验结果分析)。

五、实验内容及原理:

(一)以8255作为输出/输入口,通过驱动电路控制4个双色LED(红、绿、),模拟十字路口交通信号灯的控制。通过开关改变南北方向或东西方向的通行时间,并具有四方向黄灯同时闪烁的功能。

(二)本实验是模拟交通灯控制,要了解实际交通灯的变化规律。

1、十字路口为东西、南北走向。初始状态0:为东西红灯,南北红灯,全部禁行。然后转运行状态。运行状态分为状态1~状态4,循环执行。

状态1:南北通行绿灯亮,东西禁行红灯亮;调用延时软件一,延时后转入状态2;

状态2:南北通行状态结束,绿灯闪烁几次转亮黄灯;调用延时软件二,延时后转入

状态3,此时东西向仍为红灯禁行;

状态3:东西通行绿灯亮,南北禁行红灯亮;调用延时软件一,延时后转入状态4;

状态4:东西通行状态结束,绿灯闪烁几次转亮黄灯;调用延时软件二,延时后转入

状态1,此时南北向仍为红灯禁行。

注:双色LED由一个红色LED管芯和一个绿色LED管芯封装在一起,阴极为共用端:(1)红色阳极加高电平,绿色阳极加低电平时,红灯亮。

绿色阳极加高电平,红色阳极加低电平时,绿灯亮。

(2)红色、绿色阳极同时加高电平,显示黄灯。

(3)双色LED电路原理图见图3-6。

2、选作部分:可根据设置的开关状态改变延时软件一的延时常数,使南北或东西方向具有不同的通行时间;也可根据设置的开关状态进入四方向黄灯同时闪烁的缓行状态。

六、实验步骤:

1、打开实验箱,连结PC机微机原理综合实验箱的通讯线;

2、根据自己设计的电路连接8255与双色灯驱动电路及开关的连线;

3、打开PC机电源,通过编辑软件输入源程序;

4、软件汇编调试无误后,将程序加载到实验箱中;

5、在微机原理综合实验箱上通过调试程序;

6、观察各方向信号灯的变化情况,改变延时程序的延时时间常数,使其符合交通信号灯的变化规律。

7、改变不同开关的状态,观察是否符合设计要求。

8、实验结束后,关闭实验箱电源,拆除并整理好连线。

;实验一双色灯实验

D1 EQU 20H

D2 EQU 100H

DA TA SEGMENT

PB DB ?

DA TA ENDS

STACK SEGMENT STACK

STA DW 50 DUP(?)

TOP EQU LENGTH STA

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

PUSH CS

POP DS

MOV DX,8003H ;设置为全输出

MOV AL,80H

OUT DX,AL

MOV DX,202H

MOV AL,00

OUT DX,AL ;清LED

MOV DX,8002H ;全红

MOV AL,0FH

OUT DX,AL

MOV BX,7FH

CALL DL Y

BG: MOV AL,01101001B ;南北绿,东西红

OUT DX,AL

MOV BX,D2

CALL DL Y

MOV CX,03H

XH1: AND AL,00001001B ;绿灭

OUT DX,AL

MOV BX,D1

CALL DL Y

OR AL,01101001B ;绿亮

OUT DX,AL

MOV BX,D1

CALL DL Y

LOOP XH1

OR AL,01101111B ;南北黄

OUT DX,AL

MOV BX,D1

CALL DL Y

MOV BX,D1

CALL DL Y

MOV AL,10010110B ;南北红,东西绿

OUT DX,AL

MOV BX,D2

CALL DL Y

MOV CX,03

XH2: AND AL,00000110B

OUT DX,AL

MOV BX,D1

CALL DL Y

OR AL,10010110B

OUT DX,AL

MOV BX,D1

CALL DL Y

LOOP XH2

OR AL,10011111B

OUT DX,AL

MOV BX,D1

CALL DL Y

MOV BX,D1

CALL DL Y

JMP BG

DL Y PROC NEAR

PUSH CX

DDD: MOV CX,0FFFH

CCC: LOOP CCC

DEC BX

CMP BX,0

JNE DDD

POP CX

RET

DL Y ENDP

CODE ENDS

END START

实验八8253接口分频器实验

一、实验目的

1、熟练掌握8253接口电路的应用。

2、了解8253的工作模式,掌握其编程方法。

3、了解8253定时器的硬件连接及时序关系。

二、实验属性验证性实验。

三、实验仪器设备及器材

计算机、微机原理综合实验箱。

四、实验要求

1、实验前:预习8253工作模式命令字格式,熟悉实验内容,按要求编写好实验程序,写出预习报告。

2、实验中:正确连线,掌握接口电路程序设计调试的方法,注意观察实验现象。

3、实验后:写出实验报告(包含程序流程图、源程序、电路连接图,实验结果分析,画出时序关系图)。

五、实验内容及原理

编程初始化8253,其设置为:定时器0工作在方式3(方波)的状态,定时器1工作在

方式2(分频)的状态。

1、定时器0输出的脉冲作为定时器1的时钟输入;定时器1输出的脉冲作为定时器2的时钟输入。

2、用示波器观察(可用LED指示灯代替)定时器0和定时器1的输出引脚之间的波形关系。

3、8253的工作频率不超过2MHz,输入的CLK频率须在2MHz以下。

实验箱上的晶振是14.7459MHz,因此须经过8284和393分频Array后再作为8253的CLK输入。将波特率开关拨至9600,然后从

开关边上的f插孔引出接到8253的CLK0输入端。

C SEGMENT

ASSUME CS:C

TIMER2 EQU

TIMER1 EQU

TIMER0 EQU

START:

MOV DX,00110110B

OUT TIMER0,DX

MOV AX,200H

OUT TIMER0,AL

MOV AL,AH

OUT TIMER1,AL

MOV DX,01010100B

MOV AX,0AH

OUT TIMER2,AL

MOV AH,4CH

INT 21H

C ENDS

END START

微机原理习题及答案

一、选择 1、在微型计算机中,微处理器的主要功能是进行( )。 D A、算术运算 B、逻辑运算 C、算术、逻辑运算 D、算术、逻辑运算及全机的控制 2、Pentium I属于()位CPU C A、16 B、8 C、32 D、64 3、Intel 8086属于()位CPU A A、16 B、8 C、32 D、64 4、CPU与I/O设备间传送的信号通常有( ) D A、控制信息 B、状态信息 C、数据信息 D、以上三种都有 5、存储器用来存放计算机系统工作时所需要的信息,即( )。 D A、程序 B、数据 C、技术资料 D、程序和数据 6、运算器的核心部件是( )。 D A、加法器 B、累加寄存器 C、多路开关 D、算逻运算单元 二、填空 1、内存可分为2大类:随机存储器RAM 和 2、数据总线是向的,地址总线是向的。 3、计算机的五大部件是:、、、、输出设备 4、总线可分为三类:、、 5、存储程序工作原理最先由提出 6、在计算机内部,一切信息的存取、处理和传送都是以形式进行的。 1、只读存储器ROM 2、双、单 3、运算器、控制器、存储器、输入设备 4、地址总线、数据总线、控制总线 5、冯·诺依曼 6、二进制 三、简答 1、冯·诺依曼型计算机的特点是什么? (1).以二进制表示指令和数据 (2).程序和数据存放在存储器中,从存储器中取指令并执行 (3).由运算器、控制器、存储器、输入设备、输出设备构成计算机硬件系统。 一、选择 1、在机器数______中,零的表示形式是唯一的()。BD A、原码 B、补码 C、反码 D、移码 2、计算机内部表示带符号整数通常采用()。C A、原码 B、反码 C、补码 D、移码

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

微机原理及应用实验 实验一开发环境的使用 一、实验目的 掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部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机一台。

微机原理加法器课程设计1

中文摘要和关键词 微机原理课程设计——8255,加法器设计2 本实验是对加法器的输入、运算、输出而进行的编程,利用了8255芯片,通过8255的A,B端口输入两个八位二进制数,经CPU运算后,由C端口输出. 通过编写相应程序用8086/8088的“OUT”指令可将8255的控制字送入其控制字寄存器所对应的地址,以达到将控制字送入8255的目的,以此来控制8255的工作方式以及A、B、C三个端口的输入,输出状态,格式化8255。本实验8255工作在方式0,即基本输入输出状态,A、B端口是输入状态,C端口是输入状态。再用相同方法可将8255的A、B两个端口的内容送入A、B两个端口。 通过A,B端口输入的两个二进制数经编程运算,然后在C口输出,通过循环语句实现两个二进制数求和的连续运算、输出. 关键字: 循环、工作方式、编程、运算、格式化

目录 课程设计任务书 1设计任务描述 1.1 设计目的 1.2 设计的要求 1.3对设计说明书撰写内容、格式、字数的要求 1.4设计完成后应提交成果的种类、数量、质量等方面的要求 1.5时间进度安排 2微机原理课程设计成绩评定表 3 设计思路 (3) 4 设计原理流程图.............………..….……..….………………….…..….…...…4~5 4.1主程序 4.2键盘扫描子程序 5 实际硬件接线图 (6) 6 源程序清单及注释…………..………..….….……………………….…………7~9 7主要元器件介绍………………………………………………………………10~12 7.1键盘 7.1.1键盘的工作原理 7.1.2键盘输入信息的过程 7.1.3键盘扫描(识别键)的过程 7.2 可编程并行接口8255A 7.2.1 8255简介 7.2.2 8255的控制字 参考文献 (13) 设计总结 (14)

微机原理及应用实验

实验报告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。

微机原理实验报告

汇编语言程序设计实验 一、实验内容 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

微机原理及应用实验报告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、掌握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循环右移四位

微机原理实验简易计算器

【实验题目】 简易计算器设计 【实验目的】 综合测试学生微机接口技术及应用能力,包括系统构思设计、电路设计搭建、软件调试等; 结合应用实际,培养学生运用微机技术服务应用、服务实际的能力。 【基本要求】 1)利用实验箱上的4x4键盘及6位数码管,实现两个16位宽的非负整数(0~65535)进行+、-、×运算,计算结果限制在范围-65535~65535,超过范围在数码管最低位显示E; 2) 16个按键的分配可以自行指定; 【扩展要求】 1)按基本要求保持输入的范围不变(16位宽),扩展计算结果的范围到用足6位数码管,当计算结果超过-65535~999999时,显示E; 2)增加÷的功能,有小数显示; 【实验程序】 ;该程序实现了基本要求及扩展要求的2) DSEG SEGMENT BUFF DB 6 DUP() LED_7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39 H,5EH,79H,71H,00H,40H POSITION DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH UNIT10 DW 10000,1000,100,10,1 NEWNUM DB 0 COUNT DB 0 FLAG DB 0 ;是否有键按下的标志 NEGTI DB 0 ;是否为负数的标志 NUM DW 0 NUM1 DW 0 NUM2 DW 0 TAG DB 0 ;运算种类标志 POINT DB 0 ;除法结果添加小数点标志 RESULT DW 0 DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV DX,300CH ;8255初始化 MOV AL,81H OUT DX,AL LEA SI,BUFF MOV CX,6 NEXT: MOV BYTE PTR[SI],16 INC SI LOOP NEXT CALL SHOW ;将显示缓冲区中内容在LED上一次显示出来 MOV COUNT,0 ;记按下了几位数 NEXT2: CALL SHOW CALL SCAN ;判断是否有按键按下 CMP FLAG,1 JZ OK JMP NEXT2 OK: MOV FLAG,0 MOV POINT,0 MOV DX,3000H ;判断是哪一个键被按下 MOV AL,0FFH OUT DX,AL MOV CH,-1 ;CH用于保存当前被扫描的列号MOV CL,07FH XL: ROL CL,1 INC CH MOV DX,3000H MOV AL,CL OUT DX,AL MOV DX,3008H

微机原理与接口技术实验报告-全实例代码

实验一上机练习 实验目的: 1、掌握用编辑软件编辑程序文本的方法。在DOS环境下,熟练掌握用MASM5.0宏汇编程序对ASM文件进行编译、连接等操作步骤。 2、熟悉用DEBUG调试程序。 实验要求: 选取教科书中一典型例题,用编辑软件在PC机中形成ASM文件,然后编译、连接,生成目标文件和可执行文件。再用DEBUG程序进行调试。 实验步骤: 实验程序如下: data segment ary1 db 12,34,45,56,67,78,89,90,18 cont1 equ $-ary1 ;ary1的长度 sum1 dw ? ary2 db 13h,24h,57h,68h,9ah,0bch,0cdh,0deh,80h,50h cont2 equ $-ary2 sum2 dw ? data ends code segment assume cs:code, ds:data

start: mov ax,data mov ds,ax lea si,ary1 mov cx,cont1 ;设定循环次数为ary1的个数 call sum lea si,ary2 mov cx,cont2 call sum mov ah,4ch ;结束程序功能调用4CH int 21h sum proc ;求和程序段,求该段所有数之和xor ax,ax ;ax清零为下面加法准备 next1: add al,[si] adc ah,0 inc si loop next1 mov [si],ax ret ;返回调用程序 sum endp ;程序段结束 code ends end start

点击“运行”点击“编译成目标文件”,编译成功后,再“运行”=〉“生成可执行文件”,然后运行,即可。 运行成功以后,可进行调试。点击工具栏的调试按钮,出现调试框。其命令如下:输入a,进行逐行汇编,输入c,比较两内存块,输入d,内存信息以16进制显示;输入e,修改内存指定的字节;输入f,可以预置一段内存;输入g,执行程序;输入h,制算术运算;输入i,从指定端口地址输入;输入l,读盘;输入m,内存块传送;输入n,置文件名;输入o,从指定端口地址输出;输入q,结束DEBUG调试;输入r,显示和修改寄存器;输入s,查找字节串;输入t,跟踪执行;输入u,反汇编;输入w,存盘操作。 实验总结: 1、通过实验,熟悉了MASM环境,了解了程序书写,编译和运行的方法。 2、实验过程中,在调试的时候,各调试命令的用法十分复杂,如指令P,单输入p只会执行一步,若要一次执行多步,可以在后面加上数字。通过练习,熟悉了各调试指令。 实验二两个多位十进制数相加 实验目的: 1、学习数据传送和算术运算指令的用法。 2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序过程。

微机原理与接口技术复习提纲

1、简述中断源的分类和它们之间的优先顺序如何?并分别简述CPU响应各类中断源的条件? 答:按中断源与CPU的位置关系,可分为外部中断和内部中断两大类: 外部中断是指有外部设备通过硬件触发请求的方式产生的中断,又称为硬件中断,外部中断有分为非屏蔽中断和可屏蔽中断 内部中断是由CPU运行程序错误或执行内部程序调用引起的一种中断,亦称软件中断。 它们之间的优先顺序是内部中断、非屏蔽中断、可屏蔽中断和单步(跟踪)中断。 CPU响应内部中断、非屏蔽中断、可屏蔽中断和单步(跟踪)中断等四类中断的相同条件是:(1)必须要有中断请求,(2)CPU当前正在执行的指令必须结束,而对于可屏蔽中断,还必须满足IF=1,即CPU处于开中断状态的条件。 2、简述动态存储器(DRAM)的特点? 答; (1) CPU对RAM中的每一单元能读出又能写入。 (2) 读/写过程先寻找存储单元的地址再读/写内容。 (3) 读/写时间与存储单元的物理地址无关。 (4) 失电后信息丢失。现已开发出带电池芯片的RAM,称为非易失性RAM(NVRAM),做到失电后信息不丢失。(5) 作Cache和主存用 3、8086 CPU中地址加法器的重要性体现在哪里? 答:地址加法器是8086 CPU的总线接口单元中的一个器件,在8086存储器分段组织方式中它是实现存储器寻址的一个关键器件,地址加法器将两个16位寄存器中的逻辑地址移位相加,得到一个20位的实际地址,把存储器寻址空间从64K扩大到1M,极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运行效率。 4、8086 CPU中有哪些寄存器?分组说明用途。哪些寄存器用来指示存储器单元的偏移地址? 答:8086 CPU中有8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI;两个控制寄存器IP、FL;四个段寄存器CS、DS、SS、ES。8个通用寄存器都可以用来暂存参加运算的数据或中间结果,但又有各自的专门用途。例如,AX专用做累加器,某些指令指定用它存放操作数和运算结果;CX为计数寄存器,在某些指令中做计数器使用;DX为数据寄存器;BX为基址寄存器,BP为基址指针,SI为源变址寄存器,DI为目的变址寄存器,这4个寄存器在数据寻址中用来存放段内偏移地址(有效地址)或段内偏移地址的一部分;SP为堆栈指示器,用来存放栈顶有效地址。两个控制寄存器用来存放有关的状态信息和控制信息。例如,标志寄存器FL用来存放状态标志和控制标志;而指令指针用来存放下一条要取指令的有效地址。四个段寄存器用来存放段地址。例如,CS寄存器用来存放代码段的段地址;DS寄存器用来存放数据段的段地址;SS寄存器用来存放堆栈段的段地址;ES寄存器用来存放扩展段的段地址。 5、DRAM为什么要刷新,存储系统如何进行刷新? DRAM以单个MOS管为基本存储单元,以极间电容充放电表示两种逻辑状态。由于极间电容的容量很小,充电电荷自然泄漏会很快导致信息丢失,所以要不断对它进行刷新操作、即读取原内容、放大再写入。 存储系统的刷新控制电路提供刷新行地址,将存储DRAM芯片中的某一行选中刷新。实际上,刷新控制电路是将刷新行地址同时送达存储系统中所有DRAM芯片,所有DRAM芯片都在同时进行一行的刷新操作。 刷新控制电路设置每次行地址增量,并在一定时间间隔内启动一次刷新操作,就能够保证所有DRAM芯片的所有存储单元得到及时刷新。 6、计算机I/O接口有何用途?试列出8个I/O接口。

微机原理及应用 上机实验报告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

微机原理与接口技术综合性实验指导书

微机原理与接口技术实验 电子发声系统设计 【实验目的】 (1). 掌握8254接口电路的连接方法,懂得分频数据对发生频率的影响。 (2). 掌握应用汇编语言控制8254使扬声器发声的程序设计的方法步骤。【实验仪器】 PC微机一台、TD-PIT+实验系统一套。 【实验内容】 连接电子发声电路,根据实验提供的音乐频率表和时间表,编程控制8254,使其输出并驱动扬声器发出相应的乐曲。编程演奏《友谊地久天长》。 (1) 确认实验系统与PC机的连线已接通。 (2) 设计连接实验电路。 (3)运用PIT端口资源工具(CHECK程序),查看I/O片选端口始地址。 (4)编程并编译、链接。 运行程序,听扬声器发音是否正确。 【程序的数据处理】 DATA SEGMENT FREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;频率表 DW 495,495,624,742,833,833,833,742,624 DW 624,495,556,495,556,624,495,416,416,371 DW 495,833,742,624,624,495,556,495,556,833 DW 742,624,624,742,833,990,742,624,624,495 DW 556,495,556,624,495,416,416,371,495,0 TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;时间表 DB 6, 2, 4, 4, 12, 1, 3, 6, 2 DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 6, 2, 4, 4, 12 DATA ENDS 【上机实验报告】 ⒈上机实验所用的设备(型号或规格),实验环境条件。 ⒉简述实验原理,说明操作过程,及数据要求,给出程序的音频及延时输入数据值。 ⒊你设计的电路图是什么。

微机原理与应用实验报告

微机原理及应用实验报告 班级:机械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.

四川大学微机原理实验报告..

微机原理实验报告 学院: 专业班级: 姓名 学号

实验一汇编语言编程基础 1.3汇编语言程序上机操作和调试训练 一.功能说明 运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。 运用LINK.EXE文件进行连接,形成*.EXE文件。 仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。 运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。 二.程序流程图 设置被除数、商的地址指针 设置单位除法次数计数器 取被除数一位作十进制调整 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 三.程序代码 修改后的程序代码如下: DATA SEGMENT A D B 9,6,8,7,5 B DB 5 C DB 5 DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX

MOV ES,AX CLD LEA SI,A LEA DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] ADD DL,30H MOV AH,2 INT 21H INC DI LOOP LP2 MOV AH,4CH INT 21H CODE ENDS END START 四.实验感想和收获 通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。 在这次试验中我也遇到了一些困难。在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。我这才想起来我的操作系统是64位的,和该软件版本不兼容。不过我并没有放弃,经过我的摸索之后,我发现用DOSBOX这个程序可以解决我的电脑运行不了该程序的问题。在解决了第一个难题后,我开始着手改正试验1.3中的语法错误和逻辑错误,但是无论我怎么修改却始终都无法通过编译,并且基本上每句话都有编译错误。根据我多年编程的经验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然通过了编译,并且之后的连接也进行的很顺利。在用DEBUG调试时发现得出的结果也很正确。 尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明显感觉到了汇编语言和C语言等高级语言所不同的地方。越是底层,基础的东西就越不人性化,用C语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

微机原理(第三版)课后练习答案解析

1 思考与练习题 一、选择题 1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备 2.微机的性能主要取决于( )。 A (B——计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器 3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码 4.采用补码表示的8位二进制数真值范围是( )。C A.-127~+127 B.-1 27~+128 C.-128~+127 D.-128~+128 5.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H 6.某数在计算机中用压缩BCD码表示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147 二、填空题 1.微处理器是指_CPU_;微型计算机以_CPU_为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P5 2.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总线。P9 4.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P12 5.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P16 6.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19 三、判断题 1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )√ 2.计算机中数据的表示范围不受计算机字长的限制。( )× 3.计算机地址总线的宽度决定了内存容量的大小。( )√ 4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码) 2 思考与练习题 一、选择题 1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路 2.以下不属于BIU中的功能部件是( )。 B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器

微机原理及应用实验报告

微机原理及应用实验报告标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

微机原理及应用实验报告 班级: 姓名: 学号: 中南大学 机电工程学院精密测控实验室

实验二软件程序设计 1.实验目的: 1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。 2.实验内容: 1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 2.、编写多字节加法程序并上机调试通过。 8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结 果存入以20H为起始地址的区域中(低字节在前)。 3.实验设备名称、型号: 4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单: 程序1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。

解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次 后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如 果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列 了。则可以退出循环,结束程序。 程序结构框图和程序代码如下:

微机原理实验报告(排序,计算)

汇编语言循环结构程序设计

一、实验目的 1. 理解各种指令的功能。 2. 进一步学习程序的调试。 二、实验内容: 1. 编制程序,对这组数进行排序,并输出原数据及排序后数据; 2. 利用DEBUG 调试工具,用D0命令,查看排序前后,内存数据的变化; 3. 去掉最大和最小的两个值,求出其余值的平均值,并输出最大值,最小值和平均值; 4. 用学过的压栈PUSH 和出栈POP 指令,将平均值按位逐个输出; 5. 将平均值转化为二进制串,并将这组二进制串输出。 6. 所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300等),所有数据结果能清晰地显示在屏幕上。 三、程序流程图 四、程序清单 DATA SEGMENT SR DB 100,?,50 DUP (?) VAR DW 5 DUP (0) AVG DW ? TEN DW 10 P DW 3

D DW 2 X DW? Y DW? MESG1 DB 13,10,'PLEASE INPUT:$' XS1 DB 13,10,'ORIGIN:$' XS2 DB 13,10,'NOW:$' XS3 DB 13,10,'MAX:$' XS4 DB 13,10,'MIN:$' XS5 DB 13,10,'AVG:$' XS6 DB 13,10,'AVG2:$' DATA ENDS STACK SEGMENT DW 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET MESG1 MOV AH,09H INT 21H LEA DX,SR CLD MOV CX,5 LEA SI,SR ADD SI,2 LEA DI,VAR IN_LOOP: MOV x, 0 MOV Y,0 _INX:

微机原理 复习笔记

1.辨析三个概念:微处理器、微型计算机、微型计算机系统 微处理器:MP是指由一片或几片大规模集成电路组成的具有运算器和控制器功能的中央处理器部件,又称为微处理机。 微型计算机: MC,是指以微处理器为核心,配上存储器、输入/输出接口电路及系统总线所组成的计算机(又称主机或微电脑)。 微型计算机系统(主机+外设+软件配置)MCS,是指以微型计算机为中心, 以相应的外围设备、电源和辅助电路(统称硬件)以及指挥微型计算机工作的系统软件所构成的系统。 2.计算机从诞生至今已经历了四代:①电子管计算机②晶体管计算机③集成 电路计算机④大规模、超大规模集成电路计算机 3.① 4位或低档8位微处理器 Intel 4004或8008CPU ②中高档8位微处理器 Intel 8080 CPU③ 16位高档微处理器 Intel 8086、80286 ④ 32位高档微处理器 Intel 80386、80486⑤ 64位高档微处理器 Intel 80586(Pentium)、Power PC 4.总线分为三种:①地址总线 AD:单向,由CPU发出到存储器或I/O端口。② 数据总线 DB:双向,由CPU送出或送往CPU。③控制总线 CB:整体双向,个体单向,传送方向固定。 5.微处理器由运算器(又称算术逻辑单元(ALU))、控制器(CU)、和寄存器阵列(RA) 三部分组成 6.控制器包括:①指令寄存器IR ②指令译码器ID ③可编程逻辑阵列 PLA 7.内部寄存器:①程序计数器PC ②地址寄存器AR ③数据缓冲寄存器DR ④ 指令寄存器IR ⑤累加器A ⑥标志寄存器FLAGS 8.冯·诺依曼首计算机基本设计思想为①以二进制形式表示指令和数据。(电子 数字计算机)②程序和数据事先存放在存储器中,计算机在工作时能够自动地、高速地从存储器中取出指令并加以执行。③由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机系统。

微机原理与应用实验报告_2(汇编语言源程序的建立调试和运行)

西华大学实验报告 西华大学实验报告(理工类) 开课学院及实验室:电气信息学院6A-217 实验时间:年月日 装 订 线

五、实验过程记录(数据、图表、计算等) assume ds:data,cs:code,es:data data segment buffer1 db 1,2,3,4,5 ;定义字节 buffer2 db 6,7,8,9,0 ;定义字节 buffer3 db 100 dup(?) ;定义字节 data ends code segment main proc far begin: push ds mov ax,0000h push ax mov ax,data mov ds,ax ;初始化 mov es,ax lea si,buffer1 ;将buffer1的地址送给si lea bx,buffer2 ; 将buffer2的地址送给bx add bx,4 ;bx+4 code segment mainproc far assume cs:code go: mov si,300h ;将300h 给si mov di,400h ;将400h 给di mov cx,50 ;将50给cx next:mov al,[si] ;将[ds]:[si]处内存给al mov [di],al ;将al 送到ds:[di]处 inc di ;di+1 dec cx ;cx-1 jnz next ;cx 不到0,跳到next mov si,300h ;再将si 给300h mov cx,50 ;cx 赋予50 cld ;清除方向标志位 next1: lodsb ;将si 处内存读到al mov bl,al ;将al 复制到bl push cx ;cx 入栈 lea di,buffer3 ;将buffer2的地址送给bx mov cx,5 ;循环次数 m: mov al,[si] ;将ds:[buffer1]处的值给al add al,[bx] ;al=al+ds:[buffer2+4] mov [di],al ;将al 送给ds[buffer3]处 inc si ;si+1 dec bx ;bx-1 inc di ;di+1dec cx ;cx-1 jnz m ;cx>=0 则在m 处循环 mov ah,4c ;结束 int 21h ret main endp code ends end begin end

相关文档
最新文档