当前位置:文档之家› 微机原理实验指导书

微机原理实验指导书

微机原理实验指导书
微机原理实验指导书

实验一DEBUG软件的使用

—、实验目的

1.学习DEBUG软件的基本使用方法。

2.掌握8088/8086的寻址方式。

3.掌握数据传送、算术运算逻辑运算等类指令的基本操作。

二、实验内容与步骤

本实验进行前必须保证系统盘上有DEBUG.EXE文件。在DOS环境下执行DEBUG命令就在屏幕上显示DEBUG提示符:“-”(短划线)。

D:\LLW>DEBUG↘;以下在字符下加下划线表示键入的内容,↘代表回车

1.装载文件——(N、L命令)

-N EXSE2_3.EXE ↘;程序命名为EXSE2_3.EXE

-L↘

2.反汇编命令(U命令)

-U ↘

3.显示当前环境和寄存器内容(R命令)

-R↘

4.以十六进制和ASCII码形式显示内存单元内容(D命令)

-D↘

5.修改寄存器内容

-R cx↘;修改完后检查是否已修改

6.输入数据(可以是指令的机器码或操作数)——即修改内存内容(E命令)

-E 段地址:偏移地址↘;修改完后检查是否已修改

7.程序输入——汇编命令(A命令)

输入程序应注意以下几点:

(1)输入的数字必须是十六进制数,并且不输入H。

(2)分号后面的内容(注释)不要输入。

(3)不输入标号,条件转移指令中的标号用偏移地址代替。

-A↘;以下用↘代表回车键,下面加下划线部分代表要键入的内容。(可以是任意程序)。

重新回到DEBUG提示符“-”状态,表示汇编命令已结束。

8.执行机器指令程序到指定断点——(G命令)

-G=段地址:偏移地址(起始)段地址:偏移地址(指定断点)

9.程序调试练习

修改并调试以下程序,使之完成30000H开始的内存单元中存入31个先自然递增然后又自然递减的数据(00H~0FH~00H)的功能。程序从CS:0100H开始存放。调试完成后程序命名为PCS1.EXE 并存盘。

程序如下:

;PCS1

MOV AX,3000H

MOV DS,AX

MOV SI,0

MOV CL,0FH

XOR AX,AX

L1:MOV [SI],AL

INC AL

DEC CL

JNZ L1

MOV CX,10H

L2:MOV [SI],AL

INC SI

DEC AL

LOOP L2

INT 20H

步骤:

(1)用A命令输入程序;

(2)用反汇编U命令显示程序及目标码:

(3)存盘程序命名为PCSl.EXE;

(4)用断点执行G命令执行程序到INT 20H指令(不执行INT 20H指令);

(5)用D命令检查程序执行后31个数是否已写入存储器3000H:0H中。

-R↘

-D↘

显示如下:????

(6)修改程序、调试直到显示结果正确。

三、思考题

1.EXE文件程序的第一条可执行指令的IP等于多少?

2.在DEBUG环境下显示的程序和数字是什么形式?标号又是什么形式?

四、实验报告

1.打印PCSl.EXE的反汇编文件,并在每条指令后加上注释。

2.回答思考题。

3.打印本次实验中所有DEBUG命令及运行界面。

4.试述本次实验中你学会的DEBUG命令。

实验二汇编语言程序的建立和运行

—、实验目的

1.熟悉伪指令和汇编运算符,掌握汇编语言程序的编写方法。

2.学习汇编语言源程序的编辑、汇编、连接、调试及运行的全过程。

二、实验内容及步骤·

要建立和运行汇编语言程序,系统盘上应该具有如下文件:

.EDIT.COM(或其他全屏幕编辑软件如WS.COM、EDLIN.COM等) 编辑程序.MASM.EXE 宏汇编程序.LINK.EXE 链接程序.DEBUG.EXE 调试程序

1.程序编辑。用EDIT或者其他编辑软件编辑书中149页程序源程序并存盘。

2.程序汇编

如果被汇编的程序没有语法错误,则屏幕上还给出如下信息:

0 Warning Errors

0 Severe Errors

汇编过程中如果发现有错误,程序员必须重新用编辑软件修改错误后再进行汇编,直至汇编正确通过。需要强调的是汇编过程只能指出源程序中的语法错误,而不能指出算法和逻辑等错误。

3.程序链接

汇编过程由源程序产生了二进制的目标文件(OBJ文件),但目标文件用的是浮动地址,它不能直接上机执行,必须用链接程序(LINK.EXE)将OBJ文件转换成可执行的EXE文件。

4.程序调试与运行

有了EXE文件后就可以运行程序了。此时只要打入文件名(不输入扩展名),回车即可。

有的程序中没有将结果显示在CRT屏幕上,因此不能知道程序运行结果,这时必须在DEBUG 状态下查看寄存器或内存单元。

三、思考题

1.用DEBUG软件调试程序(.EXE文件形式),不执行任何指令,可以用D命令(-DDS: 0)查看数据段的原始数据吗?为什么?

2.汇编语言源程序通过了汇编和链接是否就正确无误了?为什么?

3.汇编语言源程序经汇编和链接后产生的是哪一种可执行文件?这种文件中IP的初始值一般是多少?

四、实验报告

1.填写EXSE3_1.ASM程序中分号后的空白,贴在习题本上。

2.打印调试通过后的程序清单。

3.回答思考题。

4.以本程序为例说明汇编语言程序的建立和运行的主要步骤。

实验三代码转换实验

一、实验目的

1.掌握计算机常用代码的软件转换技术。

2.进一步熟悉DEBUG软件的使用。

3.掌握简单循环程序的编程方法。

二、实验内容

代码转换是计算机和I/O设备进行信息交换的重要技术之一。各种I/O设备所提供和接收的数据编码不尽相同,如图2-1所示。为了处理这些信息,计算机必须将各种不同编码形式的信息转换成别种适当的数据形式。例如,键盘输入的数据均为ASCII码形式存储在内存中,通常要求将其转换成相应的数据格式。一般实现代码转换有两种方法:

1.软件法利用CPU的算术逻辑运算功能,通过运算或查表实现各种数据代码间的转换。该方法经济但速度慢。

2.硬件法利用专用代码转换集成电路进行转换。如74LS47可把BCD码转换为七段代码。这种方法需要硬件费用,但速度快。

本实验要求掌握软件编码转换技术。

计算机常用的代码有二进制、八进制、十六进制、BCD码、ASCII码、七段码等。

(一)ASCII码转换为未组合BCD码

设从键盘输入十进制数的ASCII码已存放在起始地址为CS:0150H的单元中,把它转换成未组合BCD码后,再分别存入起始地址为CS:015AH的单元中。若输入的不是十进制数的ASCII码,则相应存放结果单元的内容为“FF”。

提示:

1.未组合BCD码是一位十进制数字占一个字节,高半字节为0,低半字节为该十进制数字的BCD码。ASCII码转换为未组合BCD码只需减30H。

2.程序框图如图所示。

3.程序执行前,需要在CS:0150H内存缓冲区写入待转换的ASCII码。方法如下;

方法一:用A命令

-A CS:0150 ↘

CS:0150 DB 35,39,30,41,32↘

方法二:用E命令

-E CS:0150

CS:0150 35,39,30,41,32 ↘

4.执行程序后检查执行结果可用D命令:

-D CS:015A ↘

CS:015A 05,09,00,FF,02

5.参考程序:

;PCS3-1

ORG 0100H

MOV CX,0005H

MOV DI,150H

BB:MOV BL,0FFH

MOV AL,[DI]

CMP AL,3AH

JNB DONE

SUB AL,30H

JB DONE

MOV BL,AL

DONE:MOV AL,BL

MOV [DI+0AH],AL

INC DI

LOOP BB

MOV AH,4CH

INT 21H ’

ORG 0150H

DB 35H,39H,30H,41H,32H

(二)BCD码转换为二进制码

在各种智能仪器和信息处理中,人们总习惯于用十进制数来表示信息。但是绝大多数计算机没有十进制运算指令(仅有十进制调整指令)。所以常规的方法是将输入的十进制数转换为二进制数后,再进行各种数据处理。

BCD码分为组合BCD码和未组合BCD码。组合BCD码每字节存放两位BCD数,未组合BCD 码每字节只存放一位BCD数,高半字节为0。组合BCD码加、减后必须用DAA和DAS指令进行调整(乘法或除法没有调整指令)。未组合BCD码则可进行加、减、乘、除四则运算,其调整指令分别为AAA,AAS,AAM和AAD。

本实验是要把两位未组合BCD码数转换成二进制数。

设未组合BCD码以存放在起始地址为CS:0150H的区域,把它们转换为二进制数后,再分别存入起始地址为CS:0165H的区域。例如

ORG 0150H

DB 03H,06H,08H,09H,06H,05H,02H,09H

则转换后CS:0165H开始的单元的内容为:

CS:0165H 24H,00H,59H,00H,41H,00H,1DH,00H

提示:

1.算法是“十位×10 +个位”。其中的10可以用“10=8+2”来实现。

2.程序流程图如图所示。

3.参考程序。

;PCS3-2

ORG 0100H

START:MOV CX,0004H

MOV DI,0150H

AA:MOV AL,[DI]

ADD AL,AL

MOV BL,AL

ADD AL,AL

ADD AL,AL

ADD AL,BL

INC DI

MOV AH,00H

ADD AL,[DI]

MOV [DI+14H],AX

INC DI

LOOP AA

MOV AH,4CH

INT 21H

ORG 0150H

DB 03H,06H,08H,09H,06H,05H,02H,09H

三、思考题

1.本实验中用DEBUG软件输入的程序的起始地址等于多少?最初四个段寄存器的初始化值有何特点?

2.DEBUG状态下输入的程序属哪一种可执行文件?它有几个段?这种文件第一条可执行指令必须位于何处?

3.画出循环程序结构框图。

四、实验报告

1.打印程序清单。

2.回答思考题。

3.总结本实验主要收获。

注:将(一)程序改写为标准汇编语言程序格式。

实验四两个多位十进制数相加

一、实验目的

1.学习并掌握数据传送指令和算术运算指令的用法。

2.熟悉在PC机上建立、汇编、链接和运行8088汇编语言程序的过程。

二、实验内容

将两个多位十进制数相加,并在屏幕上显示加数、被加数以及和。已知被加数和加数均以ASCII 码形式存放在DATAl和DATA2为首的单元中(低位位于低地址),结果送回DATAl

处。

三、编程提示

1.因被加数和加数均以ASCⅡ码形式存放,所以在相加前必须转化为BCD码,此时用组合BCD 码最适宜。未组合BCD码相加要用到AAA加法调整指令。

2.显示数据可用2号DOS功能调用。

3.程序流程图如图所示。

四、思考题

如果是减法,程序应如何修改?如果加数、被加数以组合BCD码形式存放在DATAl、DATA2缓冲区,程序应怎样修改?

五、实验报告-

1.打印程序清单。

2.回答思考题。

3.调试程序中遇到什么问题?怎样解决的?

六、参考程序

;PCS4.ASM

CRLF MACR0

MOV AH,02H

INT 21H

MOV DL,0AH

MOV AH,02H

INT 21H

ENDM

DA TA SEGMENT

DA TAl DB 33H,39H,31H,37H,34H

COUNT EQU$—DATA1

DA TA2 DB 36H,35H,30H,38H,32H

DA TA ENDS

STACK SEGMENT STACK ’STACK’

DB 20 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET DA TA2

MOV BX,COUNT

CALL DISPL

CRLF

MOV SI,OFFSET DA TA1

MOV BX,COUNT

CALL DISPL

CRLF

MOV DI,OFFSET DATA2

CALL ADDA

MOV SI,OFFSET DA TA1

MOV BX,COUNT

CALL DISPL

CRLF

MOV AX,4C00H

INT 21H

DISPL PROC NEAR

DS1:MOV AH,02H

MOV DL,[SI+BX-1]

INT 21H

DEC BX

JNZ DS1

RET

DISPL ENDP

ADDA PROC NEAR

MOV BP,DI

MOV BX,COUNT

AD1:SUB BYTE PTR[SI+BX-1],30H SUB BYTE PTR [DI+BX-1],30H

DEC BX

JNZ AD1

MOV SI,DX

MOV DI,BP

MOV CX,COUNT

CLC

AD2:MOV AL,[SI]

ADC AL,[DI]

AAA

MOV [SI],AL

INC SI

INC DI

LOOP AD2

MOV SI,DX

MOV DI,BP

MOV BX,COUNT

AD3:ADD BYTE PTR [SI+BX-1],30H ADD BYPE PTR [DI+BX-1],30H

DEC BX

JNZ AD3

RET

ADDA ENDP

CODE ENDS

END START

实验五 子程序设计

一、实验目的

1.通过程序调试,观察子程序调用及嵌套过程,进一步理解CALL 指令和RET 指令的功能。 2.掌握子程序(或过程)调用时参数传递的方法。 二、实验内容

(1)调试程序PCS5_1.ASM ,使实现函数2)(b a y +=(a 和b 均为0~65535之间的值),并在屏幕上显示y 的值(十六进制形式)。

;PCS5-1.ASM TO BE DEBUGED DA TA SEGMENT A DW 125 B DW 90

Y DW 3 DUP(0) Z DW 0,0 DA TA ENDS

STA SEGMENT STACK ’STACK ’ DW 50 DUP(‘S ’) STA ENDS

CODE SEGMENT

ASSUME CS :CDOE ,DS :DATA ,SS :STA STAR PROC FAR PUSH DS XOR AX ,AX PUSH AX

MOV AX ,DA TA

MOV DS ,AX

MOV AX ,A MOV Z ,AX MOV Z+2,AX

CALL MLT MOV AX ,B MOV Z ,AX MOV Z+2,AX CALL MLT MOV AX ,A MOV Z ,AX MOV AX ,B MOV Z+2,AX CALL MLT ADD Y ,AX ADC Y+2,DX

ADC Y+4,0

CALL DSP6

RET

STAR ENDP

MLT PROC

MOV AX,Z

MOV BX,Z+2

MUL BX

ADD Y,AX

ADC Y+2,DX

ADC Y+4,0

RET

MLT ENDP

DSP6 PROC

LEA SI,Y

ADD SI,5

MOV CX,6

L1:MOV AL,BYTE PTR[SI]

CALL DSPAL

DEC SI

LOOP L1

RET

DSP6 ENDP

DSPAL PROC

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV BH,AL

MOV BL,2 码

MOV CL,4

SHR AL,CL

G1:CMP AL,10

JGE G2

OR AL,30H

JMP G3

G2:ADD AL,37H

G3:MOV DL,AL

MOV AH,2

INT 2lH

DEC BL

JZ G4

MOV AL,BH

AND AL,0FH

JMP G1

G4:POP DX

POP CX

POP BX

POP AX

RET

DSPAL ENDP

CODE ENDS

END STAR

程序调试通过后,在DEBUG环境下观察CALL和RET指令执行时堆栈指针的变化及堆栈中压入和弹出的内容。

三、编程提示

1.子程序(过程)传递参数的方法,除简单情况利用数据段单元传递外,还有以下三种方法:

(1)用寄存器传递,适用于参数个数少的情况。

(2)利用堆栈传递参数,适用于参数较多且子程序有嵌套、递归调用的情况。高级语言的过程(函数)的参数传递很多采用此方法。

(3)用程序存储器中的参数表传递,这个参数表紧跟在调用指令的后面。

2.用堆栈传递参数的方法是:在主程序中先把参数压入堆栈然后调用子程序。

3.用程序存储器传递参数的方法是在主程序中把要传递的参数直接放在调用指令的后面。传递的参数可以是参数的值(在本例中是乘数的值本身),也可以是参数的地址(在本例中是乘数存放的地址)。

四、思考题

1.画出PCS5_1.ASM程序层次结构框图。

2.假如MLT是一个远过程,画出第三次执行CALL MLT指令后堆栈中数据存放图。

3.怎样利用堆栈传送参数?第三次执行CALL MLTSS指令后,根据D命令所显示的堆栈内容画出堆栈中数据存放图并写出取参数的指令。

4.怎样利用程序存储器传送参数的地址?为什么返回主程序前要调整返回地址?怎样调整?

五、实验报告

1.打印一份程序清单。

2.回答思考题。

实验六8255A控制交通信号灯实验

一、实验目的

1.通过对红、绿、黄LED发光二极管的控制熟练掌握8255A可编程并行接口的编程方法。

2.学习单板方式下扩展简单I/O接口的方法以及双色灯的使用。

3.进一步学习微处理器的编程技术。

二、实验设备

1.IBMPC机或其兼容机一台(PC/XT或具有ISA总线的PC/AT以上微机)。

2.T598爱迪克实验箱一套。

3.万用表一块。

三、实验内容

编写程序控制8255A可编程并行接口芯片,使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的燃灭规律发光。当按下任意键则停止运行,返回DOS。

四、实验步骤

1.设计电路并在实验台上连接线路,如图所示。应连线如下:

将DG1~DG4,DR1~DR4用导线连至8255的PC0~PC7,8255的CS片选接至138译码处的200H 插孔。

2.编写程序,用8255A控制发光二极管,模拟交通信号灯的亮灭规律,按任意键返回DOS。 3.运行程序,验证所编程序的正确性。

五、编程提示

1.要完成本实验,首先必须了解交通信号灯的亮灭规律。设有一个十字路口,1、3为南北方向,2、4为东西方向。

(1)初态为4个红灯全亮,禁止通行。

(2)1、3路口绿灯亮,2、4路口红灯亮。

(3)1、3路口绿灯灭

(4)1、3路口黄灯闪烁。

(5)4个路口红灯全亮。

(6)2、4路口绿灯亮,同时1、3路口红灯亮。

(7)2、4路口绿灯灭。

(8)2、4路口黄灯闪烁。

(9)转向(1)循环执行。

2.参考程序流程图如图所示。

六、思考题

1.数据段中开辟PB单元起什么作用?

2.8255A是否可以不通过驱动器而直接驱动LED发光二极管?为什么?

七、实验报告

1.画出实验电路。

2.打印程序清单。

3.回答思考题。

实验七8259A中断控制器实验

一、实验目的

1.了解IBMPC系列微机对中断控制器8259A的初始化编程,学会在IBMPC系列微机上使用中断方式的原理和方法。

2.学习中断服务程序的编写及装载方法。

二、实验设备

1.IBMPC机或其兼容机一台(PC/XT或具有ISA总线的PC/AT以上微机)。

2.T598爱迪克实验箱一套。

三、实验内容

编写中断程序,在请求8259A中断1时,能够响应8259A的硬件中断,并在数码管上显示“Irq0…”字样,中断结束时,显示“E…IRQ”。

四、实验步骤

1.设计并连接电路。

○20模块中的+PLUSE接⑨模块中的INT_0,⑨模块中的INT接实验机内核模块中的88INTR, ⑨模

块中的INTA接实验机内核模块中的88/INTA 。CS8259接200H,CS8279已固定接至238H。

2.编写程序、执行程序。

五、编程提示

1、运行该实验程序的方法是:先通过加载选项将8259A的初始化程序与中断处理程序送到RAM中。

2、本实验只提供硬件中断0实验,中断方式为边沿触发、单片、全嵌套中断方式,且中断号从中断8开始。使用者可以根据自己的需要设定为其他中断方式,且中断号可以设定从任一中断号开始。

3、实验方法:以硬中断0为例,先加载8259A主中断程序(假定地址为8100:0),然后再加载中断程序IRQ0程序(假定地址为8200:0)。然后进入TALK WITH 88ET选项下,键入SW 0:0020<

回车>0000,8200<回车>,再执行G8100:0<回车>Y即可。这样设计的目的是为了让学生们更能理解中断的执行原理与过程。

4.编写好了中断服务程序还必须在主程序中将其入口地址(段地址和偏移地址)填入中断向量表中,即完成中断服务程序的装载工作。然后还要开中断,CPU才可能响应可屏蔽中断。中断服务程序的装载可用25H DOS系统功能调用。调用格式如下:

入口参数:AH=25H

AL=中断类型号

DS=中断服务程序入口段地址

DX=中断服务程序入口偏移地址

中断服务程序装载也可以用指令直接写入中断矢量表中。设定中断服务程序名,中断类型号为nH。

5.程序流程图如图所示。

六、思考题

若用IRQ2,电路和程序要作何修改?试上机验证。

七、实验报告

1.叙述本次实验中断的全过程。

2.打印程序清单。

3.回答思考题。

微机原理实验指导书

微机原理及应用实验指导书 南京理工大学机械工程学院 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所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

内蒙古工业大学微机原理实验指导答案.doc

被嗅材尊机原理与旅用实验指导布实验 程禹够告 沽说:信息工程修陇班披, 电8 77-7班g生名:Eg 样号,2011202030 实验一编辑、汇编、 连接、调试程序的使用 程序设计A 设计要求 (1)将FFFFH 送到AX, SI, DI, BP, DS, ES 寄存器 (2)编程(利用DEBUG调试程序,每执行一次T命令后,记录相关寄存器

内容,并判断是否正确。)程序如下: CODE SEGMENT ASSUME CS:CODE START PROC FAR STTPUSH DS SUB AX,AX PUSH AX MOV AX,0FFFFH MOV SI,AX MOV DI,AX MOV BP,AX MOV DS,AX MOV ES,AX RET STARTENDP CODE ENDS END STT B、设计要求 ⑴将1,2,3,4,5分别送到数据段偏移地址为1000H, 1001H, 1002H, 1003H, 1004H,单元中。 ⑵编程 DATA SEGMENT ORG 1000H DATA ENDS CODE SEGMENT ASSUME CS:CODE START PROC FAR STTPUSH DS SUB AX,AX PUSH AX MOV AX, DATA MOV DS,AX MOV AL,1 MOV DS:[1000H],AL

MOV AL,2 MOV DS:[1001H],AL MOV AL,3 MOV DS:[1002H],AL MOV AL,4 MOV DS:[1003H],AL MOV AL,5 MOV DS:[1004H],AL RET STARTENDP CODE ENDS END STT 实验二、加法程序设计 设计内容A、设计要求 (1)在数据段偏移地址1000H处开始,连续存放有3字节的数据(高位对应高地 址,低位对应低地址),1003H处开始连续存放有两字节的数据(高对高,低 对低),求这两数据之和,并将结果放在流量数据之后。(eg: 1234 56H+78 9AH=12 AC FOH) (2)编程 DATA SEGMENT ORG 1000H H1 DB56H J34H,12H,9AH,78H H2 DB 3DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR STTPUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOVSIJOOOH MOV DI,1003H MOV BX,1005H MOV CX,2 CLC LP:MOVAL,[SI] MOV DL,[DI[ ADCAL,DL MOV [BX],AL INC SI

微机原理及应用实验

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

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所示。

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 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

北邮微机原理与接口技术硬件实验报告

微原硬件实验报告 班级:07118 班 学号:070547 班内序号:26 姓名:杨帆

实验一熟悉实验环境及IO的使用 一,实验目的 1. 通过实验了解和熟悉实验台的结构,功能及使用方法。 2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。 3. 学会Debug 的使用及编写汇编程序 二,实验内容 1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作, 2.用汇编语言编写跑马灯程序。(使用EDIT 编辑工具)实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度 等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) 三,实验步骤 1.实验板的IO 端口地址为EEE0H 在Debug 下, I 是读命令。(即读输入端口的状态---拨码开关的状态) O 是写命令。(即向端口输出数据---通过发光管来查看) 进入Debug 后, 读端口拨动实验台上八位拨码开关 输入I 端口地址回车 屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口 输入O 端口地址xx (xx 表示要向端口输出的内容)回车 查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。 2. 在Debug 环境下,用a 命令录入程序,用g 命令运行 C>Debug -a mov dx, 端口地址 mov al,输出内容 out dx, al

mov ah, 0bh int 21h or al, al jz 0100 int 20h -g 运行查看结果,修改输出内容 再运行查看结果 分析 mov ah, 0bh int 21h or al, al jz 0100 int 20h 该段程序的作用 3.利用EDIT 工具编写汇编写跑马灯程序程序 实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm 录入程序 按Alt 键打开菜单进行存盘或退出 编译文件 C>MASM 文件名.asm 连接文件 C>LINK 文件名.obj 运行文件或用Debug 进行调试。 四,程序流程图

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.数据与结果 将运行结果记录于此处

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

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

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

实验一汇编语言编程基础 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.题目:编程将(AX)=2387、(BX)=192FH、(CX)=9256中的无符号数按由大到小排序,上机编程调试出程序,并将程序及排序结果记录在下面。 CODE SEGMENT ASSUME CS:CODE START: MOV AX,2387 MOV BX,192FH MOV CX,9256 CMP AX,BX JAE NEXT1 XCHG AX,BX NEXT1: CMP AX,CX JAE NEXT2 XCHG AX,CX NEXT2: CMP BX,CX JAE NEXT3 XCHG BX,CX NEXT3: MOV AH,4CH INT 21H CODE ENDS END START 2.题目:编程将(BX)=8600H、(CX)=3489H、(DX)=9235按有符号数由大到小排序,上机编程调试出程序,并将程序及排序结果记录在下面。 ;CODE SEGMENT ASSUME CS:CODE START: MOV BX,8600h MOV CX,3489H MOV DX,9235 CMP BX,CX JGE NEXT1 XCHG BX,CX NEXT1: CMP BX,DX JGE NEXT2 XCHG BX,DX NEXT2: CMP CX,DX JGE NEXT3 XCHG CX,DX NEXT3:

MOV AH,4CH INT 21H CODE ENDS END START 3.题目:在数据段中定义如下数据:32,34,89H,,编程将以上数据按有符号数进行排序,并将程序和结果记录下来。 DATA SEGMENT NUM DB 32,34,89H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DAT START: MOV AX,DATA MOV DS,AX ;初始化DS LEA BX,NUM ;取有效地址到BX,以便访问要排序的数 MOV AL,[BX] CMP AL,[BX+1] JGE NEXT1 ;若第一个数大则跳转,否则将第一个与第二个数交换 XCHG AL,[BX+1] MOV [BX],AL NEXT1: CMP AL,[BX+2] JGE NEXT2;若第一个数大则跳转,否则将第一个与第三个数交换 XCHG AL,[BX+2] MOV [BX],AL NEXT2: MOV AL,[BX+1];将第二个和第三个数比较 CMP AL,[BX+2] JGE NEXT3;若第二个数大则跳转,否则将第二个与第三个数交换 XCHG AL,[BX+2] MOV [BX+1],AL NEXT3: MOV AH,4CH INT 21H CODE ENDS END START 4.题目:在数据段中定义如下数据:99,25,86,编程将以上数据按无符号数进行排序,上机调试出程序,并将程序和结果记录下来。 data segment num db 99h,25h,86h data ends code segment assume cs:code,ds:data start:mov ax,data

微机原理与接口技术实验指导书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.分析实验结果及所遇到的问题,并说明解决的方法。

微机原理实验报告

微机原理实验报告 计算机网络的设计是一个要求动手能力很强的一门实践课程,在课程设计期间我努力将自己以前所学的理论知识向实践方面转化,尽量做到理论与实践相结合,在课程设计期间能够遵守纪律规章,不迟到、早退,认真完成老师布置的任务,同时也发现了自己的许多不足之处。 在课程设计过程中,我一共完成了11个实验,分别是1.制作直通电缆和交叉UTP、2.交换机Console口和Telnet配置、3.交换机端口和常规配置、4.虚拟局域网VLAN配置、5.路由器Console口Telnet 配置方法和接口配置、6.路由器静态路由配置、7单臂路由配置、8.动态路由协议配置、9.PPP协议配置、10路由器访问控制表(ACL)、11.网络地址转换(NAT)。 在制作直通电缆和交换UTP的实验中,我起初不能完全按照要求来剪切电缆,导致连接不通,后来在同学的帮助下,终于将实验完成。 在做到单臂路由配置和动态路由协议配置的实验,由于自身的基础知识掌握不牢,忘掉了一些理论知识,在重新翻阅课本和老师的指导之下,也成功的完成了试验。 从抽象的理论回到了丰富的实践创造,细致的了解了计算机网络连接的的全过程,认真学习了各种配置方法,并掌握了利用虚拟环境配置

的方法,我利用此次难得的机会,努力完成实验,严格要求自己,认真学习计算机网络的基础理论,学习网络电缆的制作等知识,利用空余时间认真学习一些课本内容以外的相关知识,掌握了一些基本的实践技能。 课程设计是培养我们综合运用所学知识,发现、提出、分析、解决问题的一个过程,是对我们所学知识及综合能力的一次考察。随着科学技术日新月异的不断发展,计算机网络也在不断的变化发展当中,这就要求我们用相应的知识来武装自己,夯实基础,为将来走向工作岗位,贡献社会做好充分的准备。

微机原理实验参考答案(航大)

《微机原理》实验参考答案 实验1 汇编基本指令及顺序程序设计实验 实验2 分支与DOS中断功能调用程序设计实验 实验3 循环结构程序设计实验 实验4 存储器扩展实验 实验5 8259应用编程实验 实验1汇编基本指令及顺序程序设计实验 一、实验目的 1、掌握汇编语言的开发环境和上机过程; 2、掌握DEBUG命令; 3、掌握顺序程序设计方法; 4、掌握寻址方式; 5、理解和掌握汇编基本指令的功能。 二、实验内容 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。要求:用3种方法实现。 答:方法一CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H MOV CX,AX MOV AX,BX MOV BX,CX CODE ENDS END START 方法二CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H XCHG AX,BX CODE ENDS END START

方法三CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H PUSH AX PUSH BX POP AX POP BX CODE ENDS END START 2、分别执行以下指令,比较寄存器寻址,寄存器间接寻址和相对寄存器寻址间的区别。 MOV AX,BX 寄存器寻址,将BX内容送AX MOV AX,[BX] 寄存器间接寻址,将DS:BX内存单元内容送AX MOV AX,10[BX] 寄存器相对寻址,将DS:BX+10内存单元内容送AX 在DEBUG调试模式,用A命令直接编辑相应指令并用T命令单步执行,执行后查询相应寄存器的值并用D命令查内存。 3、已知有如下程序段: MOV AX,1234H MOV CL,4 在以上程序段的基础上,分别执行以下指令: ROL AX,CL AX=2341H ROR AX,CL AX=4123H SHL AX,CL AX=2340H SHR AX,CL AX=0123H SAR AX,CL AX=0123H RCL AX,CL 带进位标志位的循环左移 RCR AX,CL 带进位标志的循环右移 4、设有以下部分程序段: TABLE DW 10H,20H,30H,40H,50H ENTRY DW 3 ┇ LEA BX,TABLE ADD BX,ENTRY MOV AX,[BX] ┇ 要求:(1)将以上程序段补充成为一个完整的汇编程序。

微机原理实验指导书(学生)

昆明理工大学微机原理及程序设计 实验指导书 段绍米编 昆明理工大学信息工程与自动化学院 自动化系 2013年10月

微机原理实验实验要求及运行环境 1、实验要求与注意事项: 交纸质版实验报告,实验要求: 2、实验运行环境 在电脑中装ASM Masm for windows 集成实验环境2008。双击图标打开ASM MasM for windows 集成实验环境运行工作界面,输入实验程序代码,调试、改错、保存、运行、查看结果,进行记录。

运行结果显示:

实验一两个多位十进制数相加的实验 一、实验目的 1、学习数据传送和算术运算指令的用法。 2、熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加。要求被加数均以ASCII码形式各自顺序存放在以DA TA1和DA TA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图

四、程序清单 CRLF MACRO ;宏定义,宏名:CRLF MOV DL, 0DH ;把0DH给DL MOV AH, 02H ; 把02H给AH INT 21H ;系统功能调用——实现回车功能 MOV DL, 0AH ;把0AH给DL MOV AH, 02H ; 把02H给AH INT 21H ;系统功能调用——实现换行功能ENDM ;宏定义结束——本段实现回车换行功能 DATA SEGMENT;数据段定义,段名DATA DATA1 DB 33H, 39H, 31H, 37H, 34H;变量DATA1中装入加数 DATA2 DB 36H, 35H, 30H, 38H, 32H;变量DATA2中装入被加数 DATA ENDS;数据段定义结束——本段实现了两个数据的定义 STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATA START: MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV AX, TOP MOV SP, AX MOV SI, OFFSET DA TA2 MOV BX, 05 CALL DISPL CRLF MOV SI, OFFSET DA TA1 MOV BX, 05 CALL DISPL CRLF MOV DI, OFFSET DATA2 CALL ADDA MOV SI, OFFSET DA TA1 MOV BX, 05 CALL DISPL CRLF MOV AX, 4C00H INT 21H DISPL PROC NEAR

微机原理 实验报告

微机原理与接口技术 实验指导书 班级 学号099074 姓名 安徽工业大学计算机学院

实验一存贮器读写实验 一、实验内容 对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~5FFH中。 二、实验步骤 l、将实验系统与PC机连接; 2、在PC机上启功DJ-8086k软件,实验系统进入联机状态; 3、在DJ-8086k软件环境下编辑、调试程序,将程序调试、编译通过; 4、运行程序。 5、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的内容和5000~53FFH中的内容应都是55AA。 三、实验程序清单 CODE SEGMENT ; ASSUME CS:CODE PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 1850h START: JMP START0 BUF DB ,,,,, data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1 h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: MOV AX,0H MOV DS,AX MOV BX,4000H MOV AX,55AAH MOV CX,0200H RAMW1: MOV DS:[BX],AX ADD BX,0002H LOOP RAMW1 MOV AX,4000H MOV SI,AX MOV AX,5000H MOV DI,AX

微机原理习题集答案1-5

第1章概述 一、填空题 1.运算器、控制器、存储器、输入设备和输出设备。 2.运算器、控制器。 3.数据总线、地址总线、控制总线。 4.系统总线(或通信总线);系统内总线(板级总线);内部总线。 5.程序存储、程序控制、冯·诺依曼型。 二、简答题 1.答:微处理器是微计算机系统的核心硬件部件,它本身具有运算能力和控制功能,对系统的性能起决定性的影响。微处理器一般也称为CPU;微计算机是由微处理器、存储器、I/O接口电路及系统总线组成的裸机系统。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。三者之间是有很大不同的,微处理器是微型计算机的组成部分,而微型计算机又是微型计算机系统的组成部分。 2.答:总线是模块与模块之间传送信息的一组公用信号线。 总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行。因此微型计算机系统中普遍采用总线结构。 3.答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类。地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作。 第2章计算机中的数制与编码 一、填空题 1. (1) (0110 1110)二进制原码=(+110 1110)二进制真值=(+110)十进制真值 (0110 1110)二进制反码=(+110 1110)二进制真值=(+110)十进制真值 (0110 1110)二进制补码=(+110 1110)二进制真值=(+110)十进制真值 (2) (1011 0101)二进制原码=(-011 0101)二进制真值=(-53)十进制真值 (1011 0101)二进制反码=(-100 1010)二进制真值=(-74)十进制真值 (1011 0101)二进制补码=(-100 1011)二进制真值=(-75)十进制真值 2. (1) (+101 0110)二进制真值=(0101 0110)原码=(0101 0110)反码=(0101 0110)补码 (2) (-101 0110)二进制真值=(1101 0110)原码=(1010 1001)反码=(1010 1010)补码

相关主题
文本预览
相关文档 最新文档