微机原理程序设计大作业-2011
微机原理课后习题参考答案_2011_简版

微机原理课后习题参考答案_2011_简版习题答案1-6 将下列⼗进制数转换为⼆进制数、⼗六进制数和BCD 数(1)124.625 (6)268.875 解:(1)124=01111100B =7CH ,0.625×16=10,所以0.625=0.AH=0.1010B∴124.625=7C.AH=01111100.1010B=000100100100.011000100101BCD(2)268=256+12=100001100B =10CH ,0.875×16=14,∴0.875=0.EH=0.1110B.∴268.875=10C.EH=100001100.111B=001001101000.100001110101BCD 1-7 ⽤16位⼆进制数表⽰出下列⼗进制数的原码、反码和补码。
(1)+128 (4)-5 解:(1)+128 的原码和补码反码均为0000000100000000B(4)-5的原码为1000000000000101B ,反码为1111111111111010B ,补码为1111111111111011B 。
1-10 试绘出以下⼗六进制数在内存中存放的⽰意图。
设存放地址均为00H 。
解:(1)F7H (2)03BAH (3)C804326BH (4)1122334455667788H2-1 请将左边的术语和右边的含义联系起来,在括号中填⼊你选择的代号字母: 1. 字长(i )a. 指由8个⼆进制位组成的通⽤基本单元。
2. 字节(a )b. 是CPU 执⾏指令的时间刻度。
3. 指令(h )c. µPS 所能访问的存储单元数,与CPU 地址总线条数有关。
4. 基本指令执⾏周期(g )d. 唯⼀能代表存储空间每个字节单元的地址,⽤5位⼗六进制数表⽰。
5. 指令执⾏时间(j )e. CPU 访问1次存储器或I/O 操作所花的时间。
6. 时钟周期(b )f. 由段基址和偏移地址两部分组成,均⽤4位⼗六进制数表⽰。
2011年微机原理课程上机实验指导书

第一部分汇编语言程序设计实验实验一汇编语言编程基础汇编语言是一种面向机器的“低级”语言,是计算机能够提供给用户的最快而最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
要真正理解计算机的工作过程,理解计算机程序的执行过程,就必须学习汇编语言。
也正是因为如此,汇编语言程序设计是计算机专业和电子,自动控制等相关专业的重要课程。
但是,对于刚开始学习汇编语言的学生而言,汇编语言的一些命令非常抽象,很难理解,往往学习了很长时间也编不出满意的程序,更别说自如的应用,以致我们认为汇编语言很难掌握,影响我们学习汇编语言的兴趣。
实际上,为了掌握好汇编语言,我们可以从熟悉、使用DEBUG调试工具开始,先来分析和读懂一些与硬件相关的小程序,这也是我们实验一的目的。
1.1 汇编语言程序的上机步骤以下列源程序为例,先学习汇编语言的上机步骤。
文件名为1.asm:DATA SEGMENTNUM1 DB 35,35HNUM2 DW 35,35HNUM3 DB 4 DUP (34,3 DUP (34H))NUM4 DB '34AB'NUM5 DW '34','AB'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BX,OFFSET NUM1MOV AL,[BX]MOV BX,OFFSET NUM5MOV AX,[BX]MOV AH,4CHINT 21HCODE ENDSEND START一.上机步骤汇编语言程序MASM软件由编辑器,汇编MASM.EXE程序,连接LINK.EXE程序以及DUEBUG.EXE调试程序四个部分组成。
汇编语言编制完成后,在计算机上的操作过程就分为四个阶段。
1. 编辑首先输入源程序,有两种方法:(1)在记事本里录入,特别注意的是:在保存时文件格式必须选择所有文件,文件后缀名为.ASM, 即保存时文件名为XXX.asm。
2011-2012微机原理试卷(A)参考答案

本试卷 共 5 页第 2 页2.一个异步串行发送器,发送具有8 位数据位的字符,在系统中使用一位作偶校验,2 个停止位。
若每秒钟发送100 个字符,它的波特率和位周期是多少?设数据为55H ,画出TxD 端的数据传输格式。
答:波特率=(1+8+1+2)*100/s=1200bit/s 位周期=1s/1200bit=833us 图略。
3. 段寄存器CS =1200H ,指令指针寄存器IP=FF00H ,此时,指令的物理地址为多少?指向这一物理地址的CS 值和IP 值是唯一的吗?试举例说明。
答:指令的物理地址=12000H+FF00H=21F00H 。
指向这一物理地址的CS 值和IP 值不是唯一的。
例如:逻辑地址CS=2100H 、IP=0F00H 同样指向21F00H 这一物理地址。
4. CPU 与 外设传递的信息有哪几方面内容?为什么必须通过接口电路? 答:CPU 与外设传递的信息有数据信息、地址信息和状态信息。
因为微机的外部设备多种多样,工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大,它们不能与CPU 直接相连,所以必须经过接口电路再与系统相连。
5. 判断正误,正确打“√”,错误打“×”,并简述错误理由。
①. ( × )在8253 的方式控制字中,有一项计数锁存操作,其作用是暂停计数器的计数。
应改为:锁存计数器的当前值到锁存器,但不影响对计数器的计数工作②. ( × ) 无论什么硬件中断,CPU 进入中断响应过程后,都要读此中断的类型码。
非屏蔽硬件中断的中断类型码固定为02H ,所以不需要读此中断的类型码。
③. ( √ )在8088系统中,整个1M 字节的存储器构成1个存储体,不分奇地址体和偶地址体。
本试卷 共 5 页第 3 页.MODEL SMALL .DATABLOCK DB1, -2, 5, 6, -57, ……; 100个带符号数 .CODE .STARTUP MOV DL, 0 LEA BX, BLOCK MOV CX, 100AGAIN: CMP BYTE PTR [BX], 0 JGE NEXT INC DL NEXT: INC BX LOOP AGAIN .EXIT END答:统计100个带符号数中负数的个数,并将统计数据存入DL 寄存器中。
微机原理及程序设计试题多套汇总(带答案)

微机原理及程序设计试卷(一)一、填空题(共15分,每空1分)1、十六进制数30A.5转换为二进制是1100001010.0101,转换为十进制是778.3125。
2、偏移量是指存储单元相对逻辑段首地址的偏移距离。
3、8088/8086系统中,不改变DS值的情况下,其数据段的最大寻址范围是_____64_KB。
4、PC总线中,IOR为低电平时,表明CPU对端口进行_____读_____操作。
5、8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是_____CS__、____DS____、_____ES___、_____SS___。
6、每条指令的执行过程中是由____取指令____、____指令译码____和___指令执行_____等操作组成。
7、I/O端口的编址方式有__独立(单独)编址______和_____统一编址___ 两种二、选择题(共20分,每小题2分)1、在机器数()中,零的表示形式是唯一的。
A、原码B、补码C、反码D、原码和反码2、若采用双符号位判断溢出,当结果的符号位为11时,表示()。
A、结果为正,无溢出B、结果正溢出C、结果负溢出D、结果为负,无溢出3、中央处理机(CPU)是指()。
A、运算器B、控制器C、运算器和控制器D、运算器、控制器和主存储器4、PSW是指令部件中()。
A、指令寄存器B、指令译码器C、程序计数器D、程序状态寄存器5、寄存器间接寻址中,操作数放在()。
A、通用寄存器B、主存单元C、堆栈D、程序计数器6、EPROM是指()。
A、随机读写存储器B、可编程的只读存储器C、只读存储器D、可擦除的可编程只读存储器7、存储周期是指()。
A、存储器的读出时间B、存储器的写入时间C、存储器进行连续读和写操作所允许的最短时间间隔D、存储器进行连续写操作所允许的最短时间间隔8、某一存储单元的逻辑地址为2500H:0010H时,其对应的物理地址为()。
A、2500HB、0010HC、25100HD、25010H9、DMA传送结束由I/O接口向CPU发出中断请求,其目的是( )。
2011微机原理考题(A)

A.8 位 B . 16 位 C.32 位 D .64 位
… …
课
程 微机原理及应用
授课教师
2.溢出标志 OF是反映( C )
…
… …
考试时间 2011 年 7
月1 日
考试班级
…
… …
学
号
姓名
…
… …
题号
一
二三
四
五
六
总分
…
… …
得分
…
B.算术运算是否出现借位情况
…
C.带符号数运算结果是否超过机器能表示的数值范围
…
…
…
D.无符号数运算结果是否超过机器能表示的数值范围
…
答
3.默认状态下,在寄存器间接寻址中与 SS段寄存器对应的寄存器是( B )
… …
…
A.BX B .BP
C .SI
D
.DI
… …
题
4.下列语句中有语法错误的语句是( A )
…
…
…
…
得分
…
二、选择题 (每小题 1 分,共 20 分)
…
阅卷人
…
将答案填到下表格里
…
… …
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
…
…
…
1.在 8086CPU微机汇编语言程序设计中,字操作的二进制数的位数是(
B)
A.算术运算是否出现进位情况
… …
…
A.MOVAX,[BX][BP] B .ADDAX,[BX] C.CMP[BX] ,AX D . LEASI ,20H[BX…]
微机原理大作业

微机原理大作业本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March微机原理大作业基于8086最小方式系统总线完成电路设计及编程:1、扩展16K字节的ROM存储器,起始地址为:0x10000;2、扩展16K字节的RAM存储器,起始地址为:0xF0000;3、设计一片8259中断控制器,端口地址分别为:0x300,0x302;4、设计一片8253定时控制器,端口地址分别为:0x320,0x322,x324,0x326;5、设计一片8255并行接口,端口地址分别为:0x221,0x223,x225,0x227;6、设计外部连接电路实现通过8253每一秒钟产生周期中断信号,并利用该信号通过8259向8086处理器发送中断请求,利用该中断同步,8086处理器周期的从8255并行接口输入8位开关量的值,并存入到RAM的某个地址中。
7、请编写实现上述功能的完整的汇编程序代码,包括主程序及中断服务程序,在主程序中需要完成中断向量表的初始化(假定8259采用8086的30号中断进行同步,中断服务程序段的标号为:INT30_ISR),8259,8253(假定外部能有的时钟源为1MHz)及8255的初始化;在中断服务程序实现从8255中输入开关量并存储到RAM的某个地址中。
MODEL SMALL.DATACNT DB 0000HINT-TBL SEGMENT AT 0 ;中断向量表ORG 30*4DD INT30_ISRINT-TBL ENDAPORT EQU 221H ;8255地址BPURT EQU 223HCPURT EQU 225HCONTR EQU 227HTIME_1 EQU 320H ;8253地址TIME_2 EQU 322HTIME_3 EQU 324HCONTR_8253 EQU 326HMPORT0 EQU 300H ;8259地址MPORT1 EQU 302HRAM1 EQU 10000HRAM2 EQU F0000H.CODE.STARTUPMOV AL,90H ;定义8255A工作方式A组方式0输入MOV DX,CONTROUT DX,ALMOV AL,14H ;定义8253计数器0工作方式方式2MOV DX,CONTR_8253OUT DX,ALMOV AL,54H ;定义8253计数器1工作方式方式2 MOV DX,CONTR_8253OUT DX,ALMOV AL,94H ;定义8253计数器2工作方式方式2 MOV DX,CONTR_8253OUT DX,ALMOV AL,64H ;将外部能有的时钟源为1MHz转换为1s MOV DX,TIME_1OUT DX,ALMOV AL,64HMOV DX,TIME_2OUT DX,ALMOV AL,64HMOV DX,TIME_3OUT DX,ALLOOP1: JMP LOOP2 ;主程序进入无限循环,等中断LOOP2: JMP LOOP1.exit ;中断程序部分INT30_ISR:CLT ;8259A关中断MOV AL, 13H ;ICW1OUT MPORT0, ALMOV AL, 0C7H ;ICW2OUT MPORT1, ALMOV AL, 01HOUT MPORT1,ALMOV DX,APORTIN AL,DXCMP CNT,4000HJB CASE1CMP CNT,8000HJB CASE2JMP CASE3CASE1 MOV DX,CNT+RAM1 ;第一块RAM未写满OUT DX,ALJMP CNT_INCCASE2 MOV DX,CNT+RAM2-40000H ;第一块RAM写满,第二款RAM未写满OUT DX,ALJMP CNT_INCCASE3 MOV DX,RAM1 ;两块RAM写满OUT DX,ALMOV CNT,0JMP CNT_INCCNT_INC: INC CNTMOV DX,RAM1OUT DX,ALSTI ;开中断END。
微原大作业

微机原理与接口技术 ----大作业2016.6.24大作业:微处理器系统应用设计ARM微处理器系统32位数据总线(D31-D0)、32位地址总线(A31-A0)和控制线RD、WE、0BE和IRQ0。
要求存储器容BE、1BE、2BE、3量为1GB,其中ROM存储区512MB,从0x00000000开始的连续存储区,采用128MB ROM芯片;RAM存储区512MB,采用128MB SRAM 芯片,从0x20000000开始的连续存储区。
SRAM和ROM芯片通过总线与ARM微处理器系统相连;I/O接口为一片8282锁存器、一片七段数码管(共阴极)、一个按键,如下图所示;数码管通过8282锁存器与PA口相连,按键与ARM微处理器IRQ0相连。
每按一次键,通过中断方式在数码管显示其加1后的值(显示值为9时加1后显示0)。
数码管初值为本人学号的最后一位。
编写完成上述处理程序。
处理程序中采用子程序进行数码显示,中断方式实现按键处理,中断服务程序包括显示子程序。
IRQ0图8282锁存器接口图0-9数码管显示字样:要求:1、给出设计的RAM和ROM地址范围及必要说明;2、画出采用基本逻辑门(与、或、非门类)设计译码电路的微处理器总线与存储器连接图;3、画出完成上述处理程序流程图,并做必要的说明;4、程序从地址0x400处启动,给出完整处理程序清单,并有必要的注释。
一.ROM和RAM设计ROM区芯片个数:512M/128M=4片起始地址:0x00000000终止地址:0x1FFFFFFFROM芯片地址线:A[0:26]RAM区芯片个数:512M/128M=4片起始地址:0x20000000终止地址:0x3FFFFFFFRAM 芯片地址线:A[0:26]128MB = 134217728 B = B因此需要27位的地址总线访问存储器地址总线分配: A0~A26 作为存储器地址 A29 A28 A27 作为片选信号272二.电路图设计A29A30A31D[0:31]三.处理程序流程图四.处理程序清单Startup.s------------------------------------------------AREA RESET,CODEEXPORT __VectorsEXPORT Reset_Handler__VectorsDCD __initial_spDCD Reset_HandlerSPACE 14*4SPACE 6*4DCD EXTI0_HandlerReset_Handler PROCIMPORT EX4_EXTIldr r1,=EX4_EXTIbx r1B .ENDPEXTI0_Handler PROCIMPORT EXTI0_Cldr r1,=EXTI0_Cbx r1BX LRENDPAREA STACK,DATASPACE 0x100__initial_spENDMyhead.h---------------------------------------------------------------------- struct _RCC{IntCR;int CFGR;int CIR;int APB2RSTR;int APB1RSTR;int AHBENR;int APB2ENR;int APB1ENR;int BDCR;int CSR;};#define RCC ((volatile struct _RCC *)0x40021000)struct _GPIO{int CRL;int CRH;int IDR;int ODR;int BSRR;};#define GPIOB ((volatile struct _GPIO *)0x40010C00) #define GPIOA ((volatile struct _GPIO *)0x40010800)struct _USART{int SR;int DR;int BRR;int CR1;int CR2;int CR3;};#define USART1 ((volatile struct _USART *)0x40013800)struct _NVIC{int ISER[8];int rsv0[24];int ICER[8];int rsv1[24];int ISPR[8];int rsv2[24];int ICPR[8];int rsv3[24];int IABR[8];int rsv4[56];char IPR[240];int rsv5[644];int STIR;};#define NVIC ((volatile struct _NVIC *)0xE000E100)struct _BTIM{int CR1;int CR2;int rsv0;int DIER;int SR;int rsv1[4];int CNT;int PSC;int ARR;};#define TIM1 ((volatile struct _BTIM *)0x40012C00)struct _DMA_CH{int CCR;int CNDTR;int CPAR;int CMAR;int rsv;};struct _DMA{int ISR;int IFCR;struct _DMA_CH CH[7];};#define DMA1 ((volatile struct _DMA *)0x40020000) #define DMA2 ((volatile struct _DMA *)0x40020400)struct _AFIO{int EVCR;int MAPR;int EXTICR[4];int RESERVED0;int MAPR2;};#define AFIO ((volatile struct _AFIO *) 0x40010000)struct _EXTI{intIMR;int EMR;int RTSR;int FTSR;int SWIER;int PR;};#define EXTI ((volatile struct _EXTI *) 0x40010400 )Myfunction.c--------------------------------------------------------------------------------------------------- #include "Myhead.h"void RCC_Init(){RCC->APB2ENR|=((1<<3)|(1<<2)|(1<<0)); //PB PA AFIOGPIOB->CRL=0x88008; //设置PE3 PE4}void LED_Init(){GPIOA->CRL=0x33333333; //设置输出GPIOA->ODR|=(1<<5); //首先让数码管熄灭}void KEY_Init(){GPIOB->CRL=0x8; //按键设置GPIOB->ODR=0;}void AFIO_Init(){AFIO->EXTICR[0]=0x1; //PB0 TO EXTI0}void EXTI_Init(){EXTI->IMR=0x1; // EXTI0 使能EXTI->FTSR=0x1; // EXTI0 增加}void EXTI_Clear(){EXTI->PR=0x1; // EXTI0 除能}void NVIC_Init(){NVIC->ISER[0]=0xFFFFFFFF; // EXTI0 使能}void LED_Start(){GPIOA->ODR = 0xB6; //显示我的号尾数5 }void LED_On(){int t;t=GPIOA->ODR;if(t==0xFC) GPIOA->ODR=0x60; //0->1if(t==0x60) GPIOA->ODR=0xDA; //1->2if(t==0xDA) GPIOA->ODR=0xF2; //2->3if(t==0xF2) GPIOA->ODR=0x66; //3->4if(t==0x66) GPIOA->ODR=0xB6; //4->5if(t==0xB6) GPIOA->ODR=0xBE; //5->6if(t==0xBE) GPIOA->ODR=0xE0; //6->7if(t==0xE0) GPIOA->ODR=0xFE; //7->8if(t==0xFE) GPIOA->ODR=0xF6; //8->9if(t==0xF6) GPIOA->ODR=0xFC; //9->0}void EXTI0_C(){LED_On();}int EX4_EXTI(){RCC_Init();LED_Init();KEY_Init();AFIO_Init();EXTI_Init();NVIC_Init();for(;;){}return 0; }。
微机原理与接口技术:11第4章 汇编语言程序设计4.5 习题4

交通信息与控制工程系教案(理论教学用)
课程名称微机原理与接口技术第 11 次第 5 周 2 学时上课教室WM1310 课程类型专业基础课授课对象自动化专业章节名称 4.5.4程序设计举例
教学目的和要求1.了解简单的汇编语言程序设计概念;
2.了解顺序程序、多分支程序、循环程序和子程序设计。
3.了解使用汇编语言设计数值计算的程序设计;
4.了解多模块程序设计的基本概念;
5.了解软件实验内容以及过程。
讲授主要内容及时间分配程序设计概念;(25min)顺序程序设计;(15min)多分支程序设计;(20min)循环程序设计;(15min)子程序设计。
(15min)
数值分析;(35min)
多模块程序设计;(40min)软件实验的介绍;(15min)
教学重点与难点重点:
1.简单的汇编语言程序设计概念;
2.顺序程序、多分支程序、循环程序和子程序设计。
难点:
1.顺序程序、多分支程序、循环程序和子程序设计。
重点:
1.数值分析程序的汇编语言程序设计;
2.多模块程序设计。
难点:
1.多模块程序设计。
要求掌握知识点和分析方法1.了解简单的汇编语言程序设计概念;
2.掌握顺序程序、多分支程序、循环程序和子程序设计。
启发与提问1.汇编语言与C语言在程序设计上的异同?
2.使用汇编程序设计牛顿迭代法计算方程解的原理是什么?3.多模块程序设计方法与单模块程序的主要区别?
教学手段
多媒体。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与程序设计大作业
----汇编语言程序设计方法
1. 试编写一个程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCⅡ码为07)。
2. 从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并将计数值显示在屏幕上。
3. 试编写一个程序,要求比较数组ARRAY中的三个16位补码数,并根据比较结果在屏幕上显示如下信息:
(1) 如果三个数都不相等则显示0;
(2) 如果三个数有二个相等则显示1;
(3) 如果三个数都相等则显示2。
4. 从键盘输入一系列字符(以回车符结束),并按字母、数字及其它字符分类计数,最后显示出这三类计数结果。
5. 假设已经编制好5个歌曲程序,它们的段地址和偏移地址存放在数据段的跳转表SINGLIST中,试编制程序,根据从键盘输入的歌曲编号1~5,转去执行五个歌曲程序中的一个。
6. 试编制一个程序,把AX中存放的16进制数转换为ASCII码,并将对应的ASCII码依次存放在MEM数组中的四个字节中。
例如:当(AX)= 2A49H时,程序执行完后,MEM中的四个字节的内容为39H,34H,41H,32H。
7. 设有10个学生的成绩分别是76,69,84,90,73,88,89,63,100,80分,试编制一个子程序统计60~69分,70~79分,80~89分,90~99分及100分的人数,放在S6,S7,S8,S9和S10单元中。
8. 编写一个子程序嵌套结构的程序模块,分别从键盘输入姓名及8个字符的电话号码,并以一定的格式显示出来。
主程序TELIST:
∙显示提示符INPUT NAME:;
∙调用子程序INPUT_NAME输入姓名;
∙显示提示符INPUT A TELEPHONE NUMBER:;
∙调用子程序INPUT_PHONE输入电话号码;
∙调用子程序PRINT_LINE显示姓名及电话号码。
子程序INPUT_NAME:
∙调用键盘输入子程序GET_CHAR,把输入的姓名放在INBUF缓冲区中;
∙把INBUF中的项目移入输出行OUT_NAME中。
子程序INPUT_PHONE:
∙调用键盘输入子程序GET_CHAR,把输入的电话号码放在INBUF缓冲区中;∙把INBUF中的项目移入输出行OUT_PHONE中。
子程序PRINT_LINE:
∙显示姓名及电话号码,格式为:
NAME TEL
⨯⨯⨯⨯⨯⨯⨯⨯⨯⨯⨯⨯
程序设计报告要求:
1.编制并打印程序流程图
2.编制并打印程序清单
3.打印运行结果
4.程序设计报告以小组为单位提交,小组成员签字。