微机原理作业
- 格式:docx
- 大小:145.14 KB
- 文档页数:12
第一章计算机基础(P32)1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。
1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。
以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。
微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.1-3写出下列机器数的真值:(1)01101110 (2)10001101(3)01011001 (4)11001110答案:(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)1-4写出下列二进制数的原码、反码和补码(设字长为8位):(1)+010111 (2)+101011(3)-101000 (4)-111111答案:(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000(4)[x]原=10111111 [x]反= 11000000 [x]补=110000011-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?(1)00001110 表示原码14,反码14,表示补码为14(2)11111111 表示原码-127,反码-0,表示补码为-1(3)10000000 表示原码-0,反码-127,表示补码为-128(4)10000001 表示原码-1,反码-126,表示补码为-1271-6 已知x1=+0010100,y1=+0100001,x2=-0010100,y2=-0100001,试计算下列各式。
一、设某8086系统中包含芯片8253、8259A及8255A各一片,其系统结构示意图1如图所示。
其中,8255A的PA0、PA1口分别连接开关K1、K2,PB口低七位依次接一七段数码管的a~g。
要求系统每隔2秒检测开关状态并更新数码管显示数值:若K0、K1均断开,则数码管将显示数值3;K0闭合、K1断开,则数码管将显示数值2;K0断开、K1闭合,则数码管将显示数值1;K0、K1均闭合,则数码管将显示数值0。
1、编写8255A的初始化程序片断,要求数码管初始状态显示0。
2、系统利用8253计数器2产生频率为500Hz的方波信号,利用计数器1产生周期为2秒的中断请求信号。
编写8253的初始化程序片断。
3、系统将8253计数1输出中断请求信号连接至8259A的IR1端口,设该端口对应中断类型号为41H,并采用普通全嵌套、普通中断结束方式。
写出8259A的初始化程序片断,要求屏蔽其他未使用的中断请求端口。
4、编写不断检测开关状态并更新显示数据的中断处理程序(设显示0-3字形的七段编码40H、79H……已存放在以TABLE为起始地址的存储单元中)。
5、编写采用系统功能调用实现设置中断向量的程序片断。
二、设计一8088微机系统,系统要求CPU配置工作在最小工作模式下,并配置存储器容量为16KB的EPROM,采用27128 (16Kx8位)芯片,地址为90000H—93FFFH;RAM容量为8KB,采用6264 (8Kx8位)芯片,地址为88000H—89FFFH。
在系统结构图的基础上,画出该8088最小方式系统与16KB ROM和8KB RAM存储器的连接图。
三、设计一8086微机系统,系统要求CPU配置工作在最小工作模式下,并配置存储器容量为32KB的EPROM,采用27128 (16Kx8位),芯片,地址为90000H—97FFFH;RAM容量为16KB,采用6264 (8Kx8位),芯片,地址为88000H—8BFFFH。
1 / 108第一部分 例题与习题第1章 微型计算机基础1.1 例 题1.把十进制数137.875转化为二进制数。
P7解:把十进制数转换成二进制数时,需要对一个数的整数部分和小数部分分别进行处理,得出结果后再合并。
整数部分:一般采用除2取余法小数部分:一般采用乘2取整法余数 低位 整数 高位 2 | 137 0.8752 | 68 × 2 2 | 34 1.7502 | 17 × 2 2 | 8 1.5002 | 4 × 2 2 | 2 1.0001 高位 低位 (137)10=()2 (0.875)10=(0.1101)2所以,(137.875)10=(10001001.111)22.把二进制数10011.0111转换为八进制数和十六进制数。
P9解:八进制、十六进制都是从二进制演变而来,三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数,从二进制向八进制、十六进制转换时,把二进制数以小数点为界,对小数点前后的数分别分组进行处理,不足的位数用0补足,整数部分在高位补0,小数部分在低位补0。
(10 011.011 1)2=(010 011.011 100)2=(23.34)8(1 0011.0111)2=(0001 0011.0111)2=(13.7)163.将八进制数23.34转换为二进制数。
P9解:(23.34)8=(010 011.011 100)2=(10011.0111)24.X=0.1010,Y=-0.0111,求[X -Y]补,并判断是否有溢出?P11解:[X -Y]补=[X]补+[-Y]补[X]补=0.1010 [Y]补=1.1001 [-Y]补=0.01110.10100.0111 1.0001+-------------- 1 -------------- 0-------------- 0 -------------- 1-------------- 0 -------------- 0-------------- 0 -------------- 1 ------------- 1 ------------- 1 ------------- 1说明:当异号相减运算时,通过补码,减法运算转化为两个正数的加法运算,结果为负(符号位为1),表示运算结果溢出。
微机原理作业答案40.源程序如下:CMP AX,BXJNC L1JZ L2JNS L3JNO L4JMP L5设AX=74C3H,BX=95C3H,则程序最后将转到哪个标号处执行?试说明理由。
答:∵ 74C3H- 95C3HDF00H且有:CF=1, ZF=0, SF=1, OF=1∴程序将转到L5标号处执行。
41.设IBM PC微机内存中某个单元的物理地址是12345H,试完成下列不同的逻辑地址表示:(1)1234H:___H(2)____H:0345H答:(1)1234H:05H (2) 1200H:0345H42.假设某程序执行过程中,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部物理地址是多少?答:(SS)*10H+(SP)-1=09563H43.设堆栈段寄存器(SS)=0E4BH,程序中设堆栈长度为200H个字节。
试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。
答:物理地址为:0E6AFH-2, SP的初始值为200H,指向的物理地址为:0E6AFH.。
44.对于由8086CPU组成的系统,堆栈的位置如何确立?堆栈的首址(即:SS中的值)是不是栈底?为什么?答:8086系统中堆栈的位置由SS和SP初始化后确立:其中(SS)*16决定了堆栈段起始单元的地址,即堆栈段首址;(SS)*16+(SP初值)-1决定了堆栈段最后一个单元的地址,即栈底;(SS)*16+(SP现值)决定了堆栈段当前栈顶。
显然,堆栈首址并不是栈低。
一般来说,在堆栈所在的内存区内,栈底为高地址端。
堆栈初始化后,栈顶指向栈底+1单元的偏移地址。
当堆栈压入数据后,栈顶地址总是小于栈底地址(因为一次压入两个字节数据),位于低地址端。
45.设8255A的4个端口地址分别为0C0H、0C2H、0C4H和0C6H,要求用按位置位/复位控制字使PC6输出方波信号,试编程实现。
微机原理习题习题一、填空题1、十进制389对应的二进制数是110000101,压缩的BCD码是001110001001B,非压缩的BCD码是00000011 00001000 00001001,每位数字用字符表示时的ASCII码001100112、已知= 110011B,则= 101101B,=001101B,=100110B3、在微机中,一个浮点数由阶码和尾数两个部分构成。
4、某机器字长16位,其浮点数表示方法如下,阶码占5位,其中1位符号位:尾数占11位,其中1位符号位。
阶码用二进制补码表示尾数用二进制规格化原码表示,试写十进制数——0.3125 的浮点表示(二进制码) 1111111000000005、8086CPU上电复位后,CS=FFFEH, IP=0000H,DS=0000H ,SP=0000H.6、段地址为3900H,偏移地址为5200H,则物理地址为3E200H7、8086工作于最小模式下,CPU完成存储器读操作时,信号M/IO=1 ,RD=0,WR=1和DT/R=0 .若进行字节操作,单元地址为奇地址,则BHE=0和Ao=18、Inter 8086 CPU由执行单元和总线接口单元组成,其特点是并行操作。
9、在8086/8088CPU 中,一个最基本的总线刚期数由4个时钟周期 (T状态)组成,在T1状态,CPU往总线上发出地址信息。
10、当总线请求部件收到响应HLDA信号后,就获得了总线控制权:在其控制总线时期,HOLD 和HLDA都保持高电平,当总线占用部件用完总线后,HOLD变为低电平,于是CPU又重新控制总线,并使HLDA变为低电平。
11、8086CPU对于外部的可屏蔽中断请求和非屏蔽中断请求是分别通过的INTR和NMI引脚接收的。
12、设DS:75H存储单元开始存放11H、22H、33H,若要求占用的总线周期最少,则要2条指令才能将这3个数据读入到CPU中,这时占用2 个总线周期。
微机原理练习题一、1.在堆栈段中,存放栈顶的寄存器是()A. IP B SP C BX D BP2.计算机中用来存储程序、数据等信息的记忆装置是()A.控制器 B 运算器 C CPU D 存储器3.汇编语言中,存放下一条将要执行的指令地址的寄存器是()A. SP B AX C DI D IP4.TEST指令的功能与()指令类似。
A ANDB CMPC SUBD OR6、AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是()。
A. AH=01,AL=05B. AH=1 AL=15C. AH=0 AL=0FHD. AH=0 AL=058. MOV SP,3210HPUSH AX执行上述指令序列后,SP寄存器的值是( )。
A、3211HB、320EHC、320FHD、3212H2、已知AX和BX中各存放一个无符号数,当AX大于等于BX时,转移到标号OK处,不能实现此转移的程序段是()A. CMP AX,BX JNC OKB. CMP AX,BX JNB OKC. CMP AX,BX JAE OKD. CMP BX,AX JB OK3、下面程序段符合汇编语言要求的是()A. DATA DB 10, 200 ,300B. DATA EQU 10DATA = DATA +20C. DATA DW 1050HMOV AL,DATAD. DATA DB 10B, 37Q,2AHMOV AL, DATA +14、若执行REP MOVSB 指令时,CX的值为0,则MOVSB指令执行的次数为()A. 0B. 1C. 65535D. 655361、十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
A、无符号十进制数136B、带符号十进制数-120C、压缩型BCD码十进制数88D、8位二进制数-8的补码表示1、指令MOV AX,[SI][BP]的源操作数在哪一个逻辑段中()A. 数据段B. 附加段C. 代码段D. 堆栈段1. 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )E、AX,BX,CX,DXF、BX,BP,SI,DIG、SP,IP,BP,DXH、CS,DS,ES,SS2、已知标号DATA的定义如下: DATA DB 12H, 34H, 现想把数据1234H取入AX中,正确的程序段是()A. MOV AX, WORD PTR DATAB. MOV AX, DATAC. MOV AH, DATAMOV AL,DATA+1D. MOV AL,DATAMOV DATA+19. 编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( )。
微机原理习题集第⼀章绪论作业题⼀、选择题1、⼝的基本功能是(C)。
A.输⼊缓冲 B.输出锁存 C.输⼊缓冲,输出锁存D.编址使⽤2所谓“端⼝”是指⼀些可以由CPU读或写的( C )A.RAMB.ROMC.寄存器D.缓冲器⼆、填空题1、实质上,微处理器对外设的访问就是对外设的中的访问。
(接⼝,端⼝)2、请写出三种常见的微处理器:________、________、________。
(8086;80286;80386)3、计算机CPU与输⼊/输出设备之间交换的信息包括________、________和________三类信号。
(数据信息;地址信息;控制信息)4、I/O接⼝按使⽤的信号类型包括、。
(数字、模拟)5、所谓接⼝就是与的连接部件(电路),它是CPU与外界进⾏信息交换的(CPU ;外设;中间电路)6、开关量是指只有的量,可以⽤⼀个来表⽰。
(两个状态⼆进制)7、⼀个典型的I/O接⼝,⼀般具有、和三种端⼝。
(数据、控制;地址)三、简答题1、简述微处理器、微计算机及微计算机系统三个术语的内涵。
答:微处理器是微计算机系统的核⼼硬件部件,对系统的性能起决定性的影响。
微计算机包括微处理器、存储器、I/O接⼝电路及系统总线。
微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成⼀个完整的、独⽴的信息处理系统。
2、80X86微处理器有⼏代?各代的名称是什么?答:从体系结构上可分为3代:8080/8085:8位机。
8086/8088/80286:16位机。
80386/80486:32位机。
思考题1、简述微处理器的发展过程。
2、什么是接⼝?其主要组成是什么?3、接⼝有哪些功能?讨论题1、为什么要⽤I/O接⼝?2、简述接⼝的分类第⼆章8086微处理器作业题⼀、选择题1、8088CPU芯⽚的时序中,不加等待的⼀个总线周期需时钟周期数为()DA 1B 2C 3D 42、8088CPU上INTR信号为下⾯那种信号有效?()A上升沿下降沿⾼电平低电平3、8088CPU中的SP寄存器是⼀个()位的寄存器B8 16 20 244、⼯作在最⼩模式下,8088CPU芯⽚的时序中,将地址信号锁存的信号是()CDT/R DEN ALE AEN5、8086有两种⼯作⽅式,当8086处于最⼩⽅式时,MN/MX接( ) CA.+12VB.-12VC.+5VD.地6、存取时间是指( )BA.存储器的读出时间B.存储器进⾏连续读和写操作所允许的最短时间间隔C.存储器进⾏连续写操作所允许的最短时间间隔D.存储器进⾏连续读操作所允许的最短时间间隔⼆、判断题1、8086CPU在响应中断时,执⾏两个中断响应周期。
微机原理作业1.8086C P U由哪两部分组成?它们的主要功能是什么?2.微型计算机系统由、和等组成。
3.8086CPU中的指令队列可存储个字节的指令代码,当指令队列至少空出个字节时,BIU单元便自动将指令取到指令队列中;4.8086系统中,1MB的存储空间分成两个存储体:存储体和存储体,各为字节。
5.8086系统中存储器采用什么结构?用什么信号来选中存储体?6.在8086CPU中,指令指针寄存器是。
(A) BP (B) SP (C) IP (D) DI7.8086CPU中的SP寄存器的位数是。
(A) 8位(B) 16位(C) 20位(D) 24位8.8086CPU中指令指针寄存器(IP)中存放的是。
(A)指令(B)指令偏移地址(C)操作数(D)操作数偏移地址9.若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址(最大),若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为什么值?10.下列关于8086系统堆栈的论述中,正确的是。
(A) 堆栈的工作方式是“先进后出”,入栈时SP减小(B) 堆栈的工作方式是“先进后出”,入栈时SP增大(C) 堆栈的工作方式是“先进先出”,入栈时SP减小(D)堆栈的工作方式是“先进先出”,入栈时SP增大11.8086CPU对内存读/写操作,需两个总线周期的读/写操作是。
(A) 从偶地址读/写一个字节(B) 从奇地址读/写一个字节(C) 从偶地址读/写一个字(D) 从奇地址读/写一个字12.总线周期是指。
(A) 执行一条指令所需要的时间;(B) BIU完成一次读和一次写I/O端口操作所需时间之和;(C) BIU完成一次访问存储器或I/O端口操作所需要的时间;(D) BIU完成一次读和一次写存储器操作所需时间之和。
13.8086CPU通过RESET引脚上的触发信号来引起系统复位和启动,复位时代码段寄存器CS= ,指令指针IP= 。
重新启动后,从物理地址为的地方开始执行指令。
微机原理习题册第 1 章数制和码制1.将下列十进制数分别转换为二进制数(4)(1)147 (2)4095 (3)解:147=B 4095=B= =2. 将下列二进制数分别转换为十进制数(3)(1)(2).001B解:= .001B==3.将二进制数转换成十六进制数(1)B(2)11B(3)101B (4)0B(5)01111111B(6)0B 解:(1)95H(2)34BH(3)FFFDH(4)0815H(5)7FH(6)401H4.已知 a=1011B, b=11001B, c=100110B,按二进制完成下列运算,并用十进制运算检查计算结果:(1)a+b;(2)c-a-b;(3)a·b;(4)c/b;解:a=1011B=11, b=11001B=25, c=100110B=38(1)a+b=100100B=36 (2)c-a-b=10B=2(3)a·b=1B=275 (4)c/b=1……1101B(=13)5.设机器字长为 8 位,写出下列各数的原码和补码:(1)+1010101B (2)-1010101B (3)+1111111B (4)-1111111B (5)+1000000B (6)-1000000B 解:(1)+1010101B 原码 01010101B 补码 01010101B(2)-1010101B 原码 B 补码 B(3)+1111111B 原码 01111111B 补码 01111111B(4)-1111111B 原码 B 补码 B(5)+1000000B 原码 01000000B 补码 01000000B(6)-1000000B 原码 B 补码 B6.已知 a=00111000B,b=B,计算下列逻辑运算:(1)aAND b;(2)a OR b;(3)a XOR b;(4)NOT a;解:(1)00000000B(2)1B(3)1B(4)B7.求下列组合 BCD 数的二进制和十六进制表示形式:()(1)3251;(2)12907;(3)2006 解:(1)0011 0010 0101 0001B,3251H(2)0001 0010 1001 0000 0111 B , 12907H(3)0010 0000 0000 0110B , 2006H8.设下列四组为 8 位二进制补码表示的十六进制数,计算 a+b 和a-b,并判定其结果是否溢出:(1)a=37H,b=57H;(2)a=0B7H,b=0D7H;(3)a=0F7H,b=0D7H;(4)a=37H,b=0C7H。
微机原理_在线作业_A用户名:最终成绩:100.02.在下面几个不同进制的数中,最小的数是()。
1001001B7537Q0A7H本题分值: 5.0用户得分: 5.0用户解答: 37Q知识点: 2 微机运算基础3.指令队列的作用是()。
4.下列指令中,有语法错误的是()。
5.采用虚拟存储器的目的是()。
提高主存的速度扩大外存的容量扩大编程空间提高外存的速度6.主机与外围设备传递数据时,采用下列(),主机与外设是串行工作的。
程序查询方式中断方式DMA 方式I/O处理机方式本题分值: 5.0用户得分: 5.0用户解答:程序查询方式知识点: 6 输入/输出与中断7.在8259A单片工作方式和级联工作方式下,分别最多可管理()中断源。
8.在异步串行传输时,如果规定采用5位数据位,偶校验和2位停止位,在接收时,如果收到5位数据和1位校验位后,再接收一位高电平信号和一位低电平信号,其结果表示()。
一个字符的数据已正确接收传输中出现了奇偶错数据中出现了奇偶错传输中出现了帧错本题分值: 5.0用户得分: 5.0用户解答:传输中出现了帧错知识点: 7.5 可编程串行异步通信接口芯片82509.当8255A工作在方式1时,端口C被分为两个部分,分别作为端口A和端口B的控制信息和状态信息,这两个部分的划分是()。
10.利用8253每20ms产生一次中断,若CLK为2MHZ,则8253可采用的工作方式及所采取的计数初值分别为()。
1.微型计算机的性能主要由CPU来决定。
()2.计算机中常用的BCD码是二进制数。
()3.在汇编过程中不产生指令码,只是来指示汇编程序如何汇编的指令是伪指令。
()4.不能给段寄存器进行立即数方式赋值。
()5.计算机的内存可采用RAM 和ROM。
()6.7.8259A的中断服务寄存器用于指示有外设向CPU发中断请求。
()8.当8253工作在方式0,在初始化编程时,一旦写入控制字后输出信号端OUT变为低电平。
1、当WR=1,RD=0,M/IO=1时,表示CPU当前正在进行读存储器操作。
2、已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,DS段有一操作数,其偏移地址=0204H,1)画出各段在内存中的分布2)指出各段首地CS:10550H DS:250A0HES:2EF00H SS:8FF00H3)该操作数的物理地址=?解:各段分布及段首址见右图所示。
操作数的物理地址为:250AH×10H+0204H = 252A4H3、若已知(SS)=1000H、(SP)=2000H;则堆栈段的段首地址=?1000H栈顶地址=?12000H若现在把1234H送入堆栈,则它所在的存储单元地址=? 1988H若该段最后一个单元地址为2FFFH,则栈底地址=?12FFFH4、MOV AX,[3102H]AL=(3102H) , AH=(3103H)如果(DS)=2000H, (23012H) = CDH, (23013H) = ABH;指令执行后,AX=? ABCDH5、MOV AX,[SI]若 (DS)=6000H, (SI)=1200H, (61200H)=44H, (61201H)=33H则指令执行后,(AX)=3344H。
7、保留AL中低4位,高4位清0。
AND AL, 0FHAL中有字符’a’~’z’, 将其转换成大写。
AND AL,01011111B8、把AH和AL中的非压缩BCD码组合成压缩的BCD码,放到AL中。
MOV CL,4SHL AH,CLOR AL,AH9、把AX寄存器清零。
①MOV AX,0②XOR AX,AX③AND AX,0④SUB AX,AX10、把AL中的数x乘10SAL AL,1;2xMOV AH,ALSAL AL,1;4xSAL AL,1;8xADD AL,AH;8x+2x=10x11、(BX)=84F0H,把 (BX) 中的 16 位数每 4 位压入堆栈MOV CH, 4 ; 循环次数MOV CL, 4 ; 移位次数NEXT:ROL BX, CLMOV AX, BXAND AX, 0FHPUSH AXDEC CHJNZ NEXT12、用串传送指令实现200个字节的数据传送:LEA SI,MEM1LEA DI,MEM2MOV CX,200CLDREP MOVSB13、把从A000H开始的2KB内存单元清零。
微机原理作业第一章题1.1A 把下列十进制数转换为二进制,十六进制和BCD数;1.135.6252.548.753.376.1254.254.25题1.1B 要求同上,要转换的十进制数如下;1.67.3752.936.5268.875 4.218.0625题1.2A 写下列十进制数的原码,反码和补码表示(用8位二进制);1.+652.-1153.-654.-115题1.2B 要求同题 1.2A数据如下;1.+332.+1273.-334.-127题1.3A 用16位二进制,写出下列十进制数的原码,反码,和补码表示;1.+622.-623.+2534.-2535.+6156.-615题1.4A 写出下列用补码表示的二进制数的真直;1.011011102.010110013.100011014.11111001题1.4B 要求同题 1.4A数据如下;1.011100012.000110113.100001014.11111110 ,第三章汇编语言程序设计题3.1A在下列程序运行后,给相应的寄存器及存储单元填入运行的结果:MOV AL,10HMOV byte PTR [1000],0FFH MMOV CX,1000H BLMOV BX,2000H 1000HMOV [BX],AL BHXCHG CX,BXMOV DH,[BX] CLMOV DL,01HXCHG CX,BX CHMOV [BX],DL 2000HHLT DL题 3.1B DH要求同题 3.1A程序如下;MOV AL,50H ALMOV BP,1000HMOV BX,2000HMOV [BP],ALMOV DH,20HMOV [BX],DHMOV DL,01HMOV DL,[BX]MOV CX,3000HHLT题3.2,如在自1000H单元开始有一个100个数的数椐块。
要把它传送到自2000H开始的存储区中去,用以下三种方法,分别编制程序;1;不用数据块转送指令;2;用单个转送的数据块转送指令;3;用数据块成组转送指令;题3.3A 利用变址寄存器遍一个程序,把自1000H单元内开始的100个数转送到自1070H开始的存储区中去,题3.3B 要求用 3.3A,源地址为2050H,目的地址为2000H,数据块长度为50,题3.4 编一个程序,把自1000H单元开始的100个数转送至1050H开始的存储区中(注意数据区有重叠)。
课后作业第一章作业1、若AX=AF7CH,BX=BEE7H,CPU分别执行加法指令和减法指令后各状态标志位的值是什么?2、8086系统中存储器的逻辑地址和物理地址之间有什么关系?3、设段地址为4ABFH,物理地址为50000H,求有效地址是什么?4、设CS=3100H,DS=3140H,两个段的空间均为64K个单元,问两个段重叠区为多少个单元?两个段的段空间之和为多少?5、在8086系统中,已知当前SS寄存器的内容为2345H,SP的内容0100H,请说明该堆栈段在存储器中的物理地址的范围。
若当前堆栈段中已存有10个字节的数据,那么原来SP的内容是什么数值?6、如果12MHz的振荡信号接至8284时钟输入端,其输出频率接8086/8088的CLK端。
求在插入一个等待周期的情况下从内存读一个字节数据所需的最小时间。
7、现有8个字节的数据为:34H、45H、56H、67H、78H、89H、9AH、ABH,假定它们在存储器中的物理地址为400A5H~400ACH。
若当前(DS)=4002H,求这8个数据的偏移地址。
如要以最少时间读出这些数据,需要访问存储器多少次?每次读出的数据是什么?并用图示之。
8、设段寄存器CS=2400H,指令指示器IP=6F30H,此时指令的物理地址PA 是多少?指向这一物理地址的CS值和IP值是否是唯一的?9、什么叫总线周期?8086/8088系统中的总线周期由几个时钟周期组成?如果CPU的主时钟频率为25MHz,一个时钟周期是多少?一个基本总线周期是多少时间?第三章作业3-3 若80386的控制寄存器CR0中PG、PE全为1,则CPU当前所处的工作方式如何?3-5 有一个段描述符,放在局部描述符表的第12项中,该描述符的请求特权级为2,求该描述符的选择子内容。
3-6 某一个段描述符的选择子内容为0531H,请解释该选择子的含义。
3-7在段页式管理中,若允许分页,则页的大小为多少?如果一个页面首地址为86B05000H,则上一页和下一页的页面首地址各为多少?第四章作业4-3 设有关寄存器及存储单元的内容如下:(DS)=2000H,(BX)=0100H,(SI)=0010H,(21200H)=78H,(21201H)=56H,(20100H)=68H,(21110H)=ABH,(20110H)=F4H,(20111H)=CDH,(21120H)=67H 试问下列各指令执行完后,AL或AX寄存器的内容各是什么?各指令寻址方式是什么?(1) MOV AX,1200H(2) MOV AL,BL(3) MOV AX,[1200H](4) MOV AL,[BX](5) MOV AL,1010H[BX](6) MOV AX,[BX][SI](7) MOV AL,1010H[BX][SI]4-4 判断下列指令的正误,若是错误的,请说明原因。
《微型计算机原理及应用》作业作业组别:第十一组
班级:10级机控一班
姓名:孙策
学号:100107010140
作业指导教师:李艳文
作业完成时间:2013年4月9日
目录
第一题 (1)
一、题目分析: (1)
二、寄存器及主存应用说明: (1)
三、程序框图: (1)
四、详细程序: (1)
五、程序调试情况: (2)
第二题 (2)
一、题目分析: (3)
二、寄存器及主存应用说明: (3)
三、程序框图: (3)
四、详细程序: (4)
五、程序调试情况: (5)
第三题 (6)
一、题目分析: (6)
二、寄存器及主存应用说明: (6)
三、程序框图: (7)
四、详细程序: (8)
五、程序调试情况: (9)
心得体会 (10)
第一题
44、内存有一个数x,把此数的前四位变0,后四位维持不变,送回同一单元。
一、题目分析:
令x=62H, 然后将x的偏移地址放入si,再把x与0fh相与,最后把结果送回偏移地址为si的地方。
预期结果为x=02h 存放在原来的位置。
二、寄存器及主存应用说明:
应用段寄存器ss、ds、cs通用寄存器ax、si
三、程序框图:
四、详细程序:
.model small
.stack
.data
x db 62h ;在数据段中定义一个字节型变量x
.code
start: mov ax,@data
mov ds,ax ;设置ds指向程序数据段的段地址
mov si,offset x ;获取x的偏移地址存放在si中
and byte ptr[si],0fh ;将x的前四位清零后四位不变
mov ax,4c00h
int 21h ;程序结束点,返回dos
end start
五、程序调试情况:
程序开始前:
程序结束后:
程序开始前x=62h,程序结束后x=02h,与预期结果相同。
第二题
12、假设在内存BUF为首地址的数据区中,有50个字节的无符号数,编一程序能够
找出数据块中的最大者,并把它送至MAX单元中。
一、题目分析:
首先在数据段定义以buf为首地址的50个字节无符号数,然后取第一个放在ax中与第二个相比较。
如果大于第二个,则用第一个和第三个相比较,否则,把第二个数放在ax中再与第三个数相比较。
以此类推,最后把ax中的数值放在MAX中。
预期结果, MAX=50=32h
二、寄存器及主存应用说明:
应用段寄存器ss、ds、cs通用寄存器ax、cx、si
三、程序框图:
四、详细程序:
.model small
.stack
.data
buf db 50, 1, 2, 3, 4, 5, 6,7,8,9,10;定义一个数组存放50个 db 21,22,23,24,25,26,27,26,29,30;字节无符号数,其中第 db 31,32,33,34,35,36,37,38,39,40;一个数据表示元素个数 db 41,42,43,44,45,46,47,48,49,50
MAX db ? ;定义变量MAX存放最大值
.code
start: mov ax ,@data
mov ds,ax ;设置ds指向程序数据段的段地址
lea si,buf ;取buf的偏移地址
mov cx,[si] ;取得元素个数
xor ch, ch ;将cx高位清零
dec cx ;得到循环次数
mov al,[si+1] ;取出第一个元素给al,al用于暂存最大值again: cmp al,[si+2] ;与下一个数据比较
ja next
mov al ,[si+2] ;al取得更大的数据next: inc si ;将偏移地址加1
loop again ;循环控制
mov MAX,al ;将最大值放在MAX中
mov ax,4c00h
int 21h ;程序结束点,返回dos
end start
五、程序调试情况:
程序开始前:
程序结束后:
由上图可知程序结束后变量MAX=32h=50与预期结果相同。
第三题
81、编写子程序。
用给定的字节(在AL中)填充一指定的内存区域。
该内存区域的
起始地址位于DI中,需填充的内存单元个数位于CX中。
主程序调用子程序实现上
述功能。
一、题目分析:
定义x=80用来当做给定的字节,定义buf为要填充的10个字节的内存区域。
将buf的的偏移地址放在di中,需要填充的内存单元个数放在cx中。
通过主程序调用子程序来实现将80填充到buf为首地址的10个字节的内存区域。
预期结果将在buf为首地址的10个字节内存区域出现10个50h。
二、寄存器及主存应用说明:
应用段寄存器ss、cs、ds通用寄存器ax、cx、di
三、程序框图:
四、详细程序:
.model small
.stack
.data
x db 80 ;指定字节变量用于填充指定的内存字节区域buf db 10 dup(?) ;指定内存区域
count equ $-buf ;取指定内存字节单元个数
.code
start: mov ax,@data
mov ds,ax ;设置ds指向程序数据段的段地址
mov al,x
lea di,buf ;获取buf的偏移地址
mov cx,count ;获取循环次数
call htoasc ;调用子程序
mov ax,4c00h ;程序结束点,返回dos
int 21h
htoasc proc ;过程定义,过程名为htoasc
push ax ;顺序入栈,保护寄存器中的内容
push cx
push di
again: mov [di],al ;将al中的数据放到偏移地址为di的存储单元中
inc di ;di加1
loop again ;循环控制
pop di
pop cx
pop ax ;恢复被改变的寄存器内容 ret ;子程序返回
htoasc endp ;过程结束
end start
五、程序调试情况:
程序开始前:
程序结束后:
由上图可知,程序开始前,以buf为首地址的10个字节单元中的内容都为00h,程序结束后,以buf为首地址的10个字节单元的内容都为50h与预期结果相同。
心得体会
通过对这几道小题的编程,我深刻的感觉到“麻雀虽小,五脏俱全”的含义,由一开始的题目分析,到后来的程序框图、程序调试,每一步都很重要,都不能掉以轻心,特别是程序调试的时候,丢掉一个逗号都可以导致你的程序不能运行。
经过这次编程,我感受到理论联系实际的重要性,平常在课本上学的东西貌似很熟,但是到啦真正使用的时候却模模糊糊,这就要求我们多动手,多思考,尽可能把学到的东西运用到生活中去,多与实际联系起来。
刚开始老师留这作业的时候,很发愁,不知道怎么做,也不想去做,但是真正做完回头看看,这作业也不是那么枯燥,能把你课本学到的东西联系起来,加深你对这门课的理解,不用去凭空想像啦。
这说明了一个道理“眼是孬包,手是好汉”生活中也是这样,往往吓倒我们的不是困难,而是我们自己,在我们遇到困难挫折时候,我们要尝试着去解决,而不是逃避,可能就这一小步就会为你打开一扇窗,而窗外就是另一番风景。