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

《微机原理》实验参考答案实验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 SEGMENTASSUME CS:CODESTART: MOV AX,3000HMOV BX,5000HMOV CX,AXMOV AX,BXMOV BX,CXCODE ENDSEND START方法二CODE SEGMENTASSUME CS:CODESTART: MOV AX,3000HMOV BX,5000HXCHG AX,BXCODE ENDSEND START方法三CODE SEGMENTASSUME CS:CODESTART: MOV AX,3000HMOV BX,5000HPUSH AXPUSH BXPOP AXPOP BXCODE ENDSEND START2、分别执行以下指令,比较寄存器寻址,寄存器间接寻址和相对寄存器寻址间的区别。
MOV AX,BX 寄存器寻址,将BX内容送AXMOV AX,[BX] 寄存器间接寻址,将DS:BX内存单元内容送AXMOV AX,10[BX] 寄存器相对寻址,将DS:BX+10内存单元内容送AX 在DEBUG调试模式,用A命令直接编辑相应指令并用T命令单步执行,执行后查询相应寄存器的值并用D命令查内存。
3、已知有如下程序段:MOV AX,1234HMOV CL,4在以上程序段的基础上,分别执行以下指令:ROL AX,CL AX=2341HROR AX,CL AX=4123HSHL AX,CL AX=2340HSHR AX,CL AX=0123HSAR AX,CL AX=0123HRCL AX,CL 带进位标志位的循环左移RCR AX,CL 带进位标志的循环右移4、设有以下部分程序段:TABLE DW 10H,20H,30H,40H,50HENTRY DW 3┇LEA BX,TABLEADD BX,ENTRYMOV AX,[BX]┇要求:(1)将以上程序段补充成为一个完整的汇编程序。
答案版_微机原理实验报告

《微机原理及接口技术》实验报告2013~2014学年第一学期班级姓名学号指导教师实验一Emu8086软件的使用一、实验目的1、熟悉汇编语言开发环境。
2、掌握Emu8086软件使用方法。
3、理解寻址方式的意义。
二、实验环境1、硬件环境:微机。
2、软件环境:Emu8086 4.07。
三、实验内容1、安装及运行Emu8086将老师发给大家的emu8086软件安装在自己的微机上,然后双击运行桌面上的快捷方式Emu8086,单击“new”按钮,选择“COM template”,然后单击“OK”按钮。
准备在光标闪烁处输入代码。
2、熟悉Emu8086的基本操作(1)有以下程序段,请正确填空。
MOV AX,10000MOV BX,0E49AHADD AX,BXHLT ;表示CPU停机该程序段执行后,AX=__0BAAH___,BX=_E49AH____,CF=__1___,OF=___0__,SF=___0__,ZF=__0__。
(2)上机调试并验证。
单步执行物理地址可以察看flags的各标志十进制表示机器码的十六进制表示①输入(1)中的程序段。
②程序输入后,单击工具栏上的“emulate”按钮,开始执行程序。
③认识Emu8086的指令执行界面,如上图所示,并开始单步执行指令,观察每条指令执行后的情况,与自己的思考相验证。
④程序执行完毕,观察各寄存器的值以及flags中各状态的值,检测并纠正自己的错误答案,并找出错误的原因。
(3)寻址方式已知DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,试写出以下各指令中源操作数的寻址方式,并计算出它们的物理地址。
① MOV AX,[100H]源操作数的寻址方式是__直接寻址__________,源操作数的物理地址是_10100H__________。
② MOV AX,[BP+10H]源操作数的寻址方式是__寄存器相对寻址___,源操作数的物理地址是_35210H__________。
微机原理实验一参考答案

实验一汇编语言的工作环境与上机步骤【实验目的】1、熟悉汇编语言的WINDOWS环境下Emu8086的操作环境和操作方法。
2、学会用实验的方式验证理论,进一步熟悉汇编语言开发环境。
3、深刻理解寻址方式的意义以及80X86指令的各种寻址方式。
4、深刻理解80X86各种指令的真正含义及功能。
5、了解汇编语言的程序结构、完成一个简单的程序的填充。
【实验环境】硬件环境IBM/PC 及其兼容机软件环境可视化编程环境Emu8086【实验内容及要求】1、对寄存器和存储单元赋值,观察每个寄存器和存储单元的值。
首先,完成对以下寄存器和存储单元的赋值,赋值内容如下:DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H。
以下为仿真语句示例:MOV AX,1000HMOV DS,AX ;给数据段DS赋初值1000HMOV AX,2000HMOV SS,AX ;给扩展段SS赋初值 2000HMOV AX,1A2BHMOV BX,1200HMOV CX,339AHMOV BP,1200HMOV SP,1350HMOV SI,1354H ;给通用寄存器赋初值MOV [1350H],0A5HMOV [1351H],3CHMOV [1352H],0FFHMOV [1353H],26HMOV [1354H],52HMOV [1355H],0E7HMOV [26A4H],9DHMOV [26A5H],16H ;给数据段偏移量为1350H~1355H、126A4H~126A5H的存储单元赋初值MOV SS:[1350H],88HMOV SS:[1351H],51H ;给堆栈段偏移量为1350H、1351H的存储单元赋初值2、在以上环境下,请仿真以下简单指令,在下列各小题的空格中填入相应指令的仿真执行结果,并与理论分析结果相比较,确认是否一致。
微机原理实验答案

《微机原理与接口技术》实验报告淮海工学院机械工程学院实验报告书课程名:微机原理与接口技术题目:实验一:程序的编辑、汇编、连接和调试班级:装备092班学号:010912206姓名:邓浩评语:成绩:指导教师:批阅时间:年月日一、目的与要求通过对一个简单程序的编辑、汇编、连接及调试,学习汇编语言程序设计上机操作的基本方法,为以后各项实验以及为实际的程序设计建立基础。
二、实验内容或题目1、验证题对给出的程序进行编辑、汇编、连接和调试。
以下程序段用以显示信息“HELLO.”。
2、设计题编写一程序,实现两个存储单元X,Y中两数相加,并将相加结果存放在SUM变量中,上机调试程序;检查执行结果。
三、实验步骤与源程序实验步骤:编辑源代码,文件名.asm开始——>运行——>输入cmd,显示dos界面查询编译环境所在路径EDIT编译源代码文件名.asm文件TLINK连接生成文件名.obj文件TD运行F8单步执行查看虚拟存储器1、验证题dseg segmentmess1 db 'hello','$'dseg endscseg segmentassume ds: dseg,cs: csegstart: mov ax,dsegmov ds,axmov dx,offset mess1mov ah,09hint 21hmov ah,4chint 21hcseg endsend start2、设计题data segmentx db 2y db 3sum db ?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov al,xadd al,ymov sum,almov ah,4chint 21hcode endsend start四、测试数据与实验结果(可以抓图粘贴)1、验证题2、设计题五、结果分析与实验体会通过这次实验,我对汇编语言程序设计上机操作的基本方法有了初步掌握。
西电机电院微机原理上机答案

汇编语言上机题姓名:学号:成绩:实验一、上机过程及DEBUG应用编写程序,建立数据段DATA,将你的姓名(汉语拼音)及学号存入DATA数据段的BUFFER1区域,然后利用程序将BUFFER1区域中的字符串(姓名及学号)依次传送到从BUFFER2开始的内存区域中去。
上机过程与要求1.建立原程序:源程序文件名为,源程序清单如下:data segmentbuffer1 db 'hepan04105038'buffer2 db 13 dup()data endscode segmentASSUME CS:CODE,DS:DATASTART:mov ax,datamov ds,axmov es,axlea si,buffer1lea di,buffer2mov cx,0dcldrep movsbmov ah,4chint 21hcode endsend start2.汇编后生成的obj文件名为buffer .OBJ3.连接后生成的目标文件名为buffer .EXE4.DEBUG调试:在DEBUG下,利用U、D、G、R等命令对EXE文件进行调试后,相关信息如下:(1)表1-1 反汇编清单中所反映的相关信息*注:最后一条指令是对应于代码段中最后一条指令(2)在未执行程序之前,用D命令显示内存区域BUFFER1及BUFFER2中的内容,其相关信息如表1-2所示。
表1-2 未执行程序之前的数据区内容(3)执行程序以后用D命令显示内存区域的相关信息,如表1-3。
表1-3 执行程序之后的数据区内容(4)用R命令检查寄存器的内容如表1-4所示。
回答问题a)宏汇编命令MASM的作用是什么答:产生OBJ文件。
b)连接命令LINK的作用是什么连接后生成什么文件答:产生EXE文件,生成EXE文件。
c)DEBUG下U命令的作用是什么答:反汇编被调试命令。
d)DEBUG下D命令的作用是什么答:显示内存单元的内容。
e) 在DEBUG下如何执行.EXE文件,写出执行命令的常用格式。
微机原理实验报告2g(参考答案)

实验步骤及结果记录: 实验步骤: (1) 打开 DVCC-598JH 实验箱电源。 (2) 启动计算机,运行 DVCC-598JH 实验系统。 (3) 新建文件、输入程序并保存文件。 (4) 按 F9 键调试程序。 (5) 按 Ctrl+F9 键编译链接并传送文件至 DVCC-598JH 实验箱。 (6) 打开内部数据区,将 20H 单元的值更改为 00H 运行,观察程序运行情况。 (7) 分别将 20H 单元的值更改为正数(01H~7FH) 、负数(80H~0FFH)运行, 观察程序运行情况。 结果记录: 将 20H 单元的值更改为 00H 运行,观察到 21H 单元的值为 00H; 将 20H 单元的值更改为 08H 运行,观察到 21H 单元的值为 01H; 将 20H 单元的值更改为 87H 运行,观察到 21H 单元的值为 0FFH;
实验步骤及结果记录: 实验步骤: (1) 新建文件、输入程序并保存文件。 (2) 按 F9 键调试程序。 (3) 按 Ctrl+F9 键编译链接并传送文件至 DVCC-598JH 实验箱。 (4) 打开内部数据区,更改从 20H 单元的 8 个数据,观察程序运行情况。 (5) 打开外部数据区,观察从 2000H 开始的 16 个单元数据,检查运行结果的正确性。 结果记录: 20H 给定值 观察值 观察值 87H 2000H 07H 2001H 08H 21H 54H 2002H 04H 2003H 05H 22H 36H 2004H 06H 2005H 03H 23H 23H 2006H 03H 2007H 02H 24H 19H 2008H 09H 2009H 01H 25H 43H 200AH 03H 200BH 04H 26H 77H 200CH 07H 200DH 07H 27H 69H 200EH 09H 200FH 06H
微机原理作业参考答案

微机原理作业参考答案微机原理作业参考答案微机原理作为计算机科学与技术专业的一门重要课程,涉及到计算机的硬件结构与工作原理。
学习微机原理需要掌握计算机的基本组成部分、数据表示与运算、指令系统、存储器等相关知识。
下面将从这几个方面给出微机原理作业的参考答案。
一、计算机的基本组成部分计算机的基本组成部分包括中央处理器(CPU)、存储器和输入输出设备。
其中,CPU负责执行计算机的指令,存储器用于存储数据和指令,输入输出设备用于与外部世界进行信息交互。
二、数据表示与运算数据在计算机中以二进制形式表示。
在二进制数系统中,每一位只有0和1两个取值。
数据的运算包括逻辑运算和算术运算。
逻辑运算包括与、或、非等运算,算术运算包括加、减、乘、除等运算。
三、指令系统指令是计算机执行任务的基本单位,指令系统是计算机的操作系统对计算机硬件的一种规定。
指令系统包括指令的格式、指令的执行方式等。
常见的指令格式有三地址指令、二地址指令和一地址指令等。
指令的执行方式有累加器型、栈型和寄存器型等。
四、存储器存储器是计算机中用于存储数据和指令的部件。
根据存取方式的不同,存储器可以分为随机存取存储器(RAM)和只读存储器(ROM)。
随机存取存储器是计算机中主要的存储器,用于存储正在运行的程序和数据。
只读存储器用于存储不可更改的程序和数据。
五、微机原理作业题示例1. 请解释什么是指令系统。
指令系统是计算机的操作系统对计算机硬件的一种规定,包括指令的格式、指令的执行方式等。
它规定了计算机如何执行任务,是计算机硬件与软件之间的桥梁。
2. 请解释什么是二进制数系统。
二进制数系统是一种用0和1表示数值的数制系统。
在计算机中,数据以二进制形式存储和运算。
二进制数系统是计算机中最基本的数制系统。
3. 请解释什么是随机存取存储器(RAM)。
随机存取存储器(RAM)是计算机中主要的存储器,用于存储正在运行的程序和数据。
它具有随机读写的特性,可以根据地址直接访问任意存储单元。
山东理工大学微机原理及应用B实验指导书及参考答案

实验一熟悉实验系统及设备一、实验要求通过编写一个简单的汇编语言程序并在实验仪上调试,熟悉上机步骤。
二、实验目的:熟悉实验系统及设备,掌握上机的步骤。
三、实验条件:超想—3000TB综合实验仪一套,PC机一台(安装WIN98和HK8086汇编软件)。
四、实验步骤:1、进入WIN98,双击HK8086,实验台加电(复位)。
2、单击设置/通讯口,测试串口,确定延时因子,一般为最大。
通讯前应先复位。
3、单击文件/新建,输入实现两数相加的加法源程序,存E盘根目录,文件名长度不能超过8个字符。
4、单击汇编链接,系统自动加载。
若有错误则改正。
对于“Warning 4021:no stacks Egment”错误,不影响调试。
5、调试运行,F8单步,F9连续。
若有错,则查错后重运行。
6、试验完毕后关闭设备电源。
五、参考实验程序:CODE SEGMENTASSUME CS : CODE, DS : CODESTART: J MP START1D1 DB 12HD2 DB 34HD3 DB ?START1: MOV AX, CSMOV DS, AXMOV AL,D1ADD AL,D2MOV D3,ALNOPCODE ENDSEND START实验二汇编程序设计及调试一、实验要求通过编写一个较复杂的汇编语言程序,在微机原理实验仪或PC机上进行调试,以便掌握汇编语言程序设计的方法及步骤。
二、实验目的:熟悉和掌握汇编语言程序设计的方法及步骤。
三、实验条件:超想—3000TB综合实验仪一套,PC机一台(安装WIN98和HK8086汇编软件)。
四、实验步骤:1、进入WIN98,双击HK8086,实验台加电(复位)。
2、单击设置/通讯口,测试串口,确定延时因子,一般为最大。
注:通讯前应先复位;3、单击文件/新建,输入源程序,存E盘根目录;文件名长度不能超过8个字符。
4、单击汇编链接,程序自动加载。
若有错误,则改正。
对于“Warning 4021:no stacks segment”错误可继续,不影响调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DATA SEGMENT
ORG 1000H
H1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
H2 DB 1 DUP(?)
TIP DB 13,10,"The input number must be a HEX (0~F), press <ESC> to quit.",13,10,'$'
H1 DB 10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
STT:PUSH DS
SUB AX,AX
PUSH AX
Movax,dseg
Movds,ax
;==============================
MOV SI,1000H
MOV [SI],AL
CMP AL,27 ;如果按下<ESC>键,跳至QUIT
JZ QUIT
CALL DISPLAY0 ;调用DISPLAY0子程序
CALL ASCII2HEX ;调用ASCII2HEX子程序
CMP AL,0FFH ;如果AL不等于FF(出错码)则跳至CORRECT
JNZ CORRECT
MOV AH,09H
INT 21H
SUB CX,CX ;CX清零
SUB DX,DX ;DX清零
CLC ;清CF
MOV AH,1 ;输入第1个数
INT 21H
MOV CH,AL ;放入CH
SUB CH,30H ;ASCII码调整
INT 21H ;输入第2个数
MOV CL,AL ;放入CL
SUB CL,30H ;ASCII码调整
LEA DX,ERR ;打印错误信息
MOV AH,09H
INT 21H
JMP FINISH ;跳至FINISH
CORRECT:
MOV BX,OFFSET H1 ;查表
XLAT
MOV AH,0
MOV BX,0
MOV BL,AL ;分离AL的高4位和低4位,分离后AL中为高4位,BL中为低4位
ANDAL,0F0H
RET
START ENDP
CODE ENDS
END STT
实验03B
从内存1000H开始,建立19个自然递增然后又递减的数据串(0-9-0),用DEBUG查看运行结果。
程序如下:
DATA SEGMENT
ORG 1000H
H1 DB 20 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV BX,AX
MOV CX,AX
MOV DX,AX
MOV SI,AX
MOV DI,AX
MOV BP,AX
;==============================
RET
START ENDP
CODE ENDS
END STT
实验01B
将FFH送到内存1000H,1001H,1002H,1003H,1004H单元中
ADC DL,0
MOV DI,1009H
MOV [DI],DL
;==============================
RET
START ENDP
CODE ENDS
END STT
实验02B
用串传送指令把A程序的数据块(被加数、加数、和)偏移地址1000H开始的区域传递到同一数据段的偏移地址为1010H开始的区域,并利用DEBUG查看运行结果
MOV AH,2 ;打印加号
MOV DL,2BH
INT 21H
MOV AH,1 ;输入第3个数
INT 21H
MOV DH,AL ;放入DH
SUB DH,30H ;ASCII码调整
INT 21H ;输入第4个数
MOV DL,AL ;放入DL
SUB DL,30H ;ASCII码调整
ADD CL,DL ;ASCII码个位加法
MOV AX,DATA
MOV DS,AX
LEA DX,TIP ;打印TIP信息
MOV AH,09H
INT 21H
BEGIN:
MOV DL,13 ;打印换行
MOV AH,2
INT 21H
MOV DL,10 ;打印回行首
INT 21H
MOV AH,1 ;等待从键盘输入
INT 21H
MOV SI,OFFSET H2 ;保护输入
CMP CL,10;比较个位数结果是否大于10
JNC AA ;大于等于10则跳至AA
ADD CH,DH;个位不向十位进位的十位加法
JMP BB
AA: ADD CH,DH ;个位向十位有进位的十位加法
ADD CH,1
SUB CL,10
BB: MOV DL,3DH ;打印等号
MOV AH,2
INT 21H
START PROC FAR
STT:PUSH DS
SUB AX,AX
PUSH AX
;==============================
MOV SI,OFFSET H1
MOV DI,OFFSET H1
ADD DI,12H
MOVAL,0
MOV CX,10
AA: MOV [SI],AL
MOV [DI],AL
编写一个加法程序,在数据段偏移地址1000H处开始,存放有两个3字节长的数据(高位对应高地址,低位对应低地址),求这两数据(十六进制数)的和,并将结果放在两数据之后,利用DEBUG调试程序,并求解:CCBBAAH+223344H=?CCBBAA+554433H=?
程序如下:
DATA SEGMENT
ORG 1000H
MOV AX,DS ;使ES段地址与DS相同
MOV ES,AX
MOV SI,1000H
;不带最高位进位的全加器
MOV DI,1003H
MOV BX,1006H
MOV AL,[SI]
ADC AL,[DI]
MOV [BX],AL
PUSHF
;保护FR,这里其实没有必要,因为INC不会产生进位
MOVAL,0FFH
MOV DI,1000H
MOV CX,5 ;循环5次
LP1:MOV [DI],AL ;FF放入1000H-1004H中
INC DI
DEC CX
JNZ LP1
;==============================
RET
START ENDP
CODE ENDS
END STT
实验02A
PUSH AX
;==============================
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET H2
MOV AL,[SI]
MOV BX,OFFSET H1
XLAT
INC SI
MOV [SI],AL
;==============================
ERR DB 13,10,"The input number must be a HEX (0~F).",13,10,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
STT:PUSH DS
SUB AX,AX
PUSH AX
;==============================
INT 21H
ADD CL,30H ;ASCII码调整
MOV DL,CL ;打印结果中的个位
INT 21H
MOV AH,1 ;暂停
INT 21H
;==============================
RET
START ENDP
CODE ENDS
END STT
实验03A
在数据段偏移地址0100H处开始,存放0-9的平方值(构成一个表格),任给一个自然数M在0110H单元中(0<=M<=9),查表求出M的平方值,并将结果放入0111H单元。
INC SI
INC DI
INC BX
POPF
LOOPAA
MOV DL,0 ;最高位进位
ADC DL,0
MOV DI,1009H
MOV [DI],DL
MOV SI,1000H ;串传送
MOV DI,1010H
MOV CX,5
CLD
REP MOVSW ;一次传送一个字
;==============================
程序如下:
DATA SEGMENT
ORG 1000H
H1 DB 5 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
STT:PUSH DS
SUB AX,AX
PUSH AX
;==============================
QUIT:CALL ESCAPE ;调用ESCAPE子程序
FINISH:
JMP BEGIN
;==============================
RET
START ENDP
ASCII2HEX PROC NEAR
CMP AL,30H ;ASCII转16进制子程序