文档库 最新最全的文档下载
当前位置:文档库 › 微机原理实验五-

微机原理实验五-

微机原理实验五-
微机原理实验五-

课程名称:微机原理与接口技术

姓名:

学号:

专业通信工程

班级:2013级1班

实验名称:实验五:8253A 应用

实验学时:2学时

实验地点:电子信息大楼单片机实验室实验日期:2014.12.1/2

任课教师郝

指导教师:郝波

实验成绩:

(2)编写代码,在MASM编译平台上调试、编译生成可执行文件io2 = 400h

io3=600h

code segment 'code' ;定义代码段

assume cs:code

start:

注:将实验报告、电路图和源代码文件一同放在文件夹中,文件夹以学号命名。

微机原理及应用实验

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

微机原理期末考试考试卷及答案

的数据线为16位,地址线为20位,I/O口使用16位地址线。 2.在某进制的运算中7×3=33,则7×5=_55。 3.用8位二进制数表示整数时,十进制数(-128)的补码为__。原码为无,反码为无。3.8086内部寄存器长度为16位,通用寄存器有8个,段寄存器有4个。 4.8086偶存储体的选片信号是A0,奇存储体的选片信号是BHE 。 5.MOV AX,[BX+SI]的源操作数是基址变址寻址方式,目的操作数是寄存器寻址方式。6.8086可以指向堆栈的指针寄存器有bp和sp。 7.程序中段定义结束的伪指令是ENDS,子程序定义结束的伪指令是ENDP。 8.EEPROM的擦除方法为点擦除. 9.下列指令段经汇编后,DATA所代表的偏移地址为_100 CH__。 & ORG 1000H STROE DB 12 DUP() DATA DB 05H,06H,07H,08H 1. 8086/8088在不考虑段跨越情况下,DI寄存器给出的偏移地址位于_C__。 A. 仅DS段 B. DS或SS段 C. DS或ES段 D. DS或CS段 2. 下列指令中格式错误的是___A___。 A. SHL AL,CX B. XCHG AL,BL C. MOV BX,[SI] D. AND AX,BX 3. 设(20010H)=3FH,(20011H)=B2H,执行下列指令段后,BX=____B__。 MOV AX,2000H " MOV DS,AX MOV BX,[0010H] A. B2B2H B. B23FH C. 3F3FH D. 3FB2H 4. 若SP=0124H,SS=3300H,在执行INT 60H这条指令后,堆栈栈顶的物理地址为___D___。 A. 3311CH B. 33120H C. 33122H D. 3311EH 5. 下列指令中格式错误的是_C__。 A. MOV AX,357AH[BX][DI] B. OUT DX,AL C. LEA AX,50H[BX][BP] D. RCR BX,1 6. 下列指令中允许寻址范围最大的是_D__。 A. JNZ NEXT B. LOOP NEXT ¥ C. JMP SHORT PTR NEXT D. CALL NEAR PTR NEXT 7. 8086/8088不属于BIU部分的寄存器是__D____。 A. IP B. ES C. DS D. SP 8088最大模式比最小模式在结构上至少应增加___B_。 A. 中断优先级控制器 B. 总线控制器 C. 数据驱动器 D. 地址锁存器 9. 8086在存取存贮器中以偶地址为起始地址的字时,M/IO、BHE、A0的状态分别是____D__。 A. 0,0,1 B. 1,0,1 C. 1,1,0 D. 1,0,0 10. 一个半导体存贮芯片的引脚有 A13~A0,D3~D0,WE,OE,CS,VCC,GND等,该芯片存贮容量为____C__。 A. 8K×8 B. 8K×4 C. 16K×4 D. 16K×8 !

内蒙古工业大学微机原理实验指导答案.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、掌握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、统计出某数组中相邻两数之间符号变化的次数DATA SEGMENT ARRAY DB 20 DUP (?) NUM DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA STARTUP:LEA SI , ARRAY; MOV AL ,[SI] MOV BL,0 MOV CX,19 AGAIN: INC SI XOR AL ,[SI] J NS NEXT INC BL NEXT: MOV AL ,[SI] LOOP AGAIN MOV NUM,BL MOV AH ,4CH INT 21H CODE ENDS END STARTUP 2、乘法指令实现32位二进制数与16位二进制数相乘MODEL SMALL .8086 .DATA N1 DW 1234H N2 DW 5678H N3 DW 4444H M1 DW 0 M2 DW 0 M3 DW 0 CODE . STARTUP MOV AX ,N2 MUL N3 MOV M3,AX MOV M2,DX MOV AX,N3 MUL N1 ADD M2,AX ADC M1,DX .EXIT

END 3、设有3个自变量的变量名及其内容如下: V AR1 3C46H , V AR2 F678H , V AR3 0059H 设计一个数据段定义这三个变量及其地址表变量DDRTABL DATA SEGMENT V AR1 DW 3C46H V AR2 DW F678H V AR3 DW 0059H ADDRTABL DD V AR1 DD V AR2 DD V AR3 DATA ENDS 4、设有一个符号数组,共M个,求其中最大的数,如需要求绝对值最大应如何修改,如为无符号数,程序如何修改。 DATA SEGMENT M EQU 10 DAT DW M DUP(?) MAX DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA STARUP : MOV AX ,DAT MOV MAX ,AX CLD LEA SI ,DAT MOV CX ,M L1: LODSW CMP AX ,MAX JNG LAB MOV MAX ,AX LAB : LOOP L1 MOV AH ,4CH INT 21H CODE ENDS END STARTUP 绝对值修改:需要在LODSW插入 AND AX ,AX JNS LAB1 NEG AX LAB1: CMP AX ,MAX 程序初始化时MAX应送入0

微机原理实验报告

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

微机原理试题及答案(考试必备)

一、选择题(20分,在每小题的4个备选答案中选出一个正确的答案编号填写在该题空白处,每题2分) 1.指令MOV DX,[BX]的寻址方式是 D 。 (A)立即寻址(B)直接寻址(C)寄存器寻址(D)寄存器间接寻址2.若AL的内容为3FH,执行SHL AL,1指令后,AL的内容为 A 。 (A)7EH (B)1FH (C)9FH (D)7FH 解析:shl al ,1 即目的操作数各位左移一次,移动一次,相当于将目的操作数乘以2。3fh=63 63*2=126 126=7eh 故选A 3.属于在工作中需定时刷新的存储器的芯片是 B 。 (A)SRAM (B)DRAM (C)EEPROM (D)EPROM 4.某EPROM芯片上有19条地址线A 0~A 18 ,它的容量为 C 。 (A)128K (B)256K (C)512K (D)1024K 5.8086/8088CPU的SP寄存器是多少位的寄存器 B 。 (A)8位(B)16位(C)24位(D)32位 6.在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址, 该寄存器是 D 。 (A)SP (B)BX (C)SI (D)DI 解析:stos数据串存储指令功能:将累加器al或ah中的一个字或字节,传送到附加段中以di为目标指针的目的串中,同时修改di,以指向串中的下一个单元。 7.8255工作在方式0时,下面哪种说法不正确 C 。 (A)A口输入无锁存能力(B)A、B口输出有锁存能力 (C)C口输入有锁存能力(D)A、B、C三个口输出均有锁存能力 解析:对于方式0,规定输出信号可以被锁存,输入不能锁存 8.采用DMA方式来实现输入输出是因为它 A 。 (A)速度最快(B)CPU可不参与操作(C)实现起来比较容易(D)能对突发事件做出实时响应 9.工作在最小模式下,8086/8088CPU芯片中,将地址信号锁存的信号是 C 。 (A)DT/R (B)DEN (C)ALE (D)AEN 10.在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存 器 C 。 (A)AX (B)BX (C)CX (D)DX 解析:loop:循环指令。指令执行前必须事先见重复次数放在cx寄存器中,每执行一次loop指令,cx自动减1。 二、填空题(每小题2分,共10分) 1.两个无符号数相等,该两数相减后ZF标志= 1 。解析:zf: 全零标志位。本次运算结果为0时,zf=1,否则zf=0。 2.执行LODSB后,SI的内容较该指令执行前增加1,说明DF =。 3.DMA控制器8237共有个相互独立的DMA通道。 4.8086/8088断点中断的向量码是 03H 。 5.利用8253产生对称的方波,应用其工作方式 3 。解析:8253 的工作方式3为方波发生器。

微机原理实验

实验四:分支、循环程序设计 一. 实验目的 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)

微机原理及接口技术课程期末考试试题

2010/2011 学年第 2 学期末考试试题(A卷) 课程名称微机原理及接口技术 使用班级: 08060241、08060242、08060441、08060442 一、选择题(共20分,每小题1分) 1.在下列不同进制的数据中,最小的数是___________。 A) 101001B B) 101001BCD C) 52D D) 23H 2.标准的ASCII码由______位二进制代码组成。 A) 4 B) 7 C) 8 D) 9 3.堆栈的工作方式是___________。 A)先进先出 B)后进先出 C)随机读写 D)只能读出不能写入 4. 下面的说法中,___________是正确的。 A)指令周期等于总线周期 B)指令周期大于等于总线周期 C)指令周期是总线周期的两倍 D)指令周期与总线周期之间的关系不确定5. 在8086系统中,在以下地址中可作为段起始地址的为:( ) A) 20100H B) 20102H C) 20104H D) 20108H 6. 8086执行一个总线周期最多可传送( )字节。 A) 1个 B) 2个 C) 3个 D) 4个 7. Reset信号有效后,8086CPU的启动地址为__________。 A)0FFFFFH B)0FFFFH C)00000H D)0FFFF0H 8.下列四条指令中,有几条指令需要使用DX寄存器_________? MUL BX DIV BL IN AX,20H OUT 20H,AL A) 1条 B) 2条 C) 3条 D) 4条

9.在子程序的最后一定要有一条__________指令。 A) HLT B) RET C) IRET D) POP 10.下面指令序列执行后完成的运算,正确的算术表达式应是________________。 MOV AL,BYTE PTR X SHL AL,1 DEC AL MOV BYTE PTR Y,AL A) Y=2X+1 B) X=2Y+1 C) Y=2X-1 D) X=2Y-1 11.14.8086执行POP AX指令时,正确的操作是___________________。 A) AX<--[SP+1][SP],SP<--SP+2 B) AX<--[SP+1][SP],SP<--SP-2 C) SP<--SP+2,AX<--[SP+1][SP] D) SP<--SP-2,AX<--[SP+1][SP] 12. 下列有关I/O端口的描述中,不正确的是_______________。 A)I/O端口从逻辑上讲是被CPU访问的I/O接口电路中的寄存器 B)8086系统对I/O端口的访问只能通过专用的指令 C)从连接形式上讲,I/O端口总是直接与数据总线连接 D)I/O端口可以看作是CPU与外设交换数据的中转站 13. 在中断方式下,外设数据输入到内存的路径是 ( ) A)外设→数据总线→内存 B)外设→数据总线→CPU→内存 C)外设→CPU→DMAC→内存 D)外设→I∕O接口→CPU→内存 14. 8086系统中的中断向量表的作用是____________。 A)存放中断服务程序 B)存放系统引导程序 C)存放中断响应标志 D)存放中断服务程序的入口地址 15. 对8086 CPU而言,中断优先级别最高的是_______________。 A)单步中断 B)除法错,溢出中断,软中断 C)INTR D)NMI 16. 8255A芯片具有三个独立数据端口,只有_______端口具有双向传输方式。 A) A口 B) B口 C) C口 D)以上均可 17.在8253 的6种工作方式中,能够自动重复工作的两种方式是( )。 A)方式1,方式 2 B)方式 2,方式3 C)方式2,方式 4 D)方式 3,方式5 18.在通用可编程并行电路8255A中,用于传输数据的8位I/O端口共有_________。 A) 1个 B)2个 C) 3个 D) 4个 19.实验时,在DEBUG下如果要运行0100:4360段开始的一段程序用的命令为________。 A) D=0100:4360 B) A=0100:4360 C) G=0100:4360 D) Q=0100:4360 20. 汇编实验时要显示2100H:45B6H段开始的一段程序的反汇编命令用_________。 A) E 2100:45B6 B) F 2100:45B6 C) U 2100:45B6 D) N 2100:45B6 二、填空题(共20分,每空1分) 1.微型计算机由_______________、_______________、I/O接口和系统总线组成。

微机原理实验报告

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

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在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

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

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 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,查看开始的四个字节的内容,并思考其内容与程序

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

《微机原理》实验参考答案 实验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)将以上程序段补充成为一个完整的汇编程序。

微机原理实验答案汇总

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

中南民族大学 微机原理实验答案

中南民族大学微机原理实验答案 实验一 第二题在debug中实现在屏幕上显示“0123456789” A 100 0100:mov cx,0a Mov dl,30 Mov ah,2 0106: int 21h Inc dl Loop 0106 Int 20h 第三题用int 21h 中的2号功能在屏幕上显示“122333444455555666666777777788888888999999999” a 100 0100: mov cx,9 mov dl,31h 0104: push cx xor cx,cx mov cl,dl sub cl,30h 010c: mov ah,2

int 21h loop 010c inc dl pop cx loop 0100 mov ax,4c00h int 21h int 20h 第四题用九号功能在屏幕上显示‘9876543210’ A 100 0100: db ‘9876543210’ 0106: Mov dx,0100 mov ah,9h int 21h Int 20h 实验二 第三题修改程序,在第一行连续显示4个“Hello,World!”每个以空格分开。 name hello sseg segment stack db 64 dup(0)

sseg ends dseg segment mess db 'hello World!',' ','$' dseg ends cseg segment assume cs:cseg,ds:dseg,ss:sseg,es:dseg main proc far begin:mov ax,dseg mov ds,ax mov es,ax mov ah,9 mov cx,4 s1: mov dx,offset mess int 21h loop s1 mov ax,4c00h int 21h main endp cseg ends end begin 第四题 name hello

上微机原理考试A及答案

上微机原理考试A及答案

————————————————————————————————作者:————————————————————————————————日期:

浙江工业大学期终考试命题稿 2012/2013 学年第二学期 课程名称微机原理及应用使用班级信息学院11级教师份数 2 学生份数490 命题人陈朋审核人 每份试卷 2 大张 命题总页数 6 页 需用白纸 命题注意事项: 一、命题稿请用A4纸电脑打印,或用教务处印刷的命题纸,并用黑 墨水书写,保持字迹清晰,页码完整。 二、两份试题必须同等要求,卷面上不要注明A、B字样,由教务处 抽定A、B卷。 三、命题稿必须经学院审核,并在考试前两周交教务处。

浙江工业大学2012/2013学年 第二学期试卷 课程微机原理及应用姓名___________________________ 班级__________________________学号___________________________ 题序一二三四五六七八九十总评计分

一、选择题(2分×10=20分) 1.8086指令系统的指令是(D)。 A、单字节指令 B、双字节指令 C、固定长指令 D、可变长指令 2.8086/8088复位后从(B)地址处开始执行程序。 A、00000H B、FFFF0H C、FFFFFH D、FFF0H 3.DRAM 是指(B) A、随机读写存储器 B、动态随机读写存储器 C、只读存储器 D、可擦可编程的只读存储器 4.8086CPU系统主存储器以( A)为单位编址。 A、字节 B、字 C、双字 D、八字节 5.下列指令中,有语法错误的是( C )。 A、MOV [SI],AL B、IN AL, DX C、MOV [BX+SI],78 D、MOV AX, [1200] 6.现有4K×8位的RAM芯片,它所具有的地址线条数应是( A)条。 A、12 B、13 C、11 D、10 7.下列寻址方式中,段超越前缀不可省略是(B)。 A、DS:[ BX+SI ] B、DS:[ BP+DI ] C、SS:[ BP ] D、DS:[ DI ] 8.程序中连续执行PUSH AX和POP BX两条指令,其功能相当于执行(A)指令。 A、MOV BX,AX B、MOV AX,BX C、XCHG AX,BX D、XCHG BX,AX 9.有一8086系统的中断向量表,在0000H:003CH单元开始依次存放34H、FEH、 00H和F0H四个字节,该向量对应的中断类型码和中断服务程序的入口地址分

微机原理实验指导书

实验一数据传送 实验目的 : 1、熟悉 8086 指令系统的数据传送指令及 8086 的寻址方式。 2、利用 Turbo Debugger 调试工具来调试汇编语言程序。 实验任务 : 1.通过下述程序段的输入与执行来熟悉 Turbo Debugger 的使用,并通过显示器屏幕观察程序的执行情况。练习程序段如下: MOV BL , 08H MOV CL , BL MOV AX , 03FFH MOV BX , AX MOV DS : [0020H] , BX 2.用以下程序段将一组数据压入( PUSH )堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序段如下: MOV AX , 0102H MOV BX , 0304H MOV CX , 0506H MOV DX , 0708H PUSH AX PUSH BX PUSH CX PUSH DX 出栈程序段请自行编写(用不同的出栈顺序)。 3、指出下列指令的错误并加以改正,上机验证之。

(1) MOV [BX] , [SI] (2) MOV AH , BX (3) MOV AX , [SI][DI] (4) MOV BYTE PTR[BX] , 2000H (5) MOV CS , AX (6) MOV DS , 2000H 4、设置各寄存器及存储单元的内容如下: (BX) = 0010H , (SI) = 0001H (10010H) = 12H , (10011H) = 34H , (10012H) = 56H , (10013H) = 78H (10120H) = 0ABH , (10121H) = 0CDH , (10122H) = 0EFH 说明下列各条指令执行完后 AX 寄存器中的内容,并上机验证。 (1) MOV AX , 1200H (2) MOV AX , BX (3) MOV AX , [0120H] (4) MOV AX , [BX] (5) MOV AX , 0110H[BX] (6) MOV AX , [BX][SI] (7) MOV AX , 0110H[BX][SI] 5、将 DS : 1000H 字节存储单元中的内容送到 DS : 2020H 单元中存放。试分别用 8086 的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。 6、设 AX 寄存器中的内容为 1111H , BX 寄存器中的内容为 2222H , DS : 0010H 单元中的内容为 3333H 。将 AX 寄存器中的内容与 BX 寄存器中的内容交换, 然后再将 BX 寄存器中的内容与 DS : 0010H 单元中的内容进行交换。试编写程序段,并上机验证结果。

相关文档