习题与思考题

上传人:无*** 文档编号:143196004 上传时间:2022-08-25 格式:DOC 页数:12 大小:125KB
收藏 版权申诉 举报 下载
习题与思考题_第1页
第1页 / 共12页
习题与思考题_第2页
第2页 / 共12页
习题与思考题_第3页
第3页 / 共12页
资源描述:

《习题与思考题》由会员分享,可在线阅读,更多相关《习题与思考题(12页珍藏版)》请在装配图网上搜索。

1、习题与思考题(参考答案)2.1 将下列十进制数分别转换为二进制数、八进制数、十六进制数。128D=10000000B=200O=80H1024D=10000000000B=2000O=400H0.47D=0.01111000B=0.36O=0.78H625D=1001110001B=1161O=271H67.544D=1000011.1000B=103.4264O=43.8BH2.2 将下列二进制数转换成十进制数。10110.001B=22.125D11000.0101B =24.3125D2.3 将下列二进制数分别转换为八进制数、十六进制数。1100010B=142O=62H101110.1

2、001B=56.44O=2E.9H0.1011101B=0.564O=0.BAH2.4 写出下列用补码表示的二进制数的真值。01110011 01110011 +11500011101 00011101 +2910010101 11101011 10711111110 10000010 210000001 11111111 1272.6 写出下列十进制数的BCD码表示形式。456=(0100 0101 0110)BCD789=(0111 1000 1001)BCD123=(0001 0010 0011)BCD3.1 8086CPU由几部分组成?它们的主要功能是什么?答:从功能上讲,8086分为

3、两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。BIU是CPU与外部存储器及IO的接口,负责与存储器和I0系统进行数据交换。指令执行部件EU完成指令译码和执行指令的工作。3.2 8086有多少根地址线?可直接寻址多大容量的内存空间?答:8086CPU有16根数据线和20根地址线,直接寻址空间为220,即为1M字节。3.3 8086内部的寄存器由哪几种类型组成?各自的作用是什么?答:8086CPU内部有14个16位寄存器,可以分为以下三组:分别是通用寄存器组,段寄存器组,控制寄存器。通用寄存器组可以分为两组:数据寄存器和地址指针

4、与变址寄存器。数据寄存器主要用来保存算术、逻辑运算的操作数、中间结果和地址。地址指针与变址寄存器主要用于存放或指示操作数的偏移地址。段寄存器组:80868088CPU内部设置了4个16位段寄存器,它们分别是代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES,由它们给出相应逻辑段的首地址,称为“段基址”。控制寄存器:含指令指针IP及标志位寄存器FR。IP用来存放将要执行的下一条指令在现行代码段中的偏移地址。标志寄存器FR用来存放运算结果的特征3.5 8086的存储器采用什么结构?答:8086的存储器采用分体结构。1M的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为5

5、12K字节。3.7 8086系统中的堆栈操作是按什么原则进行的?答:堆栈操作的原则是后进先出。4.3存储器的地址译码有几种方式?各自的特点是什么?答:常用的存储器地址译码有两种方式,即单译码和双译码方式。单译码方式是一个“N中取1”的译码器,译码器输出驱动N根字线中的一根,每根字线由M位组成。若某根字线被选中,则对应此线上的M位信号便同时被读出或写入,经输出缓冲放大器输出或输入一个M位的字。主要用于小容量的存储器。双译码方式采用的是两级译码电路。当字选择线的根数N很大时,N=2p中的p必然也大,这时可将p分成两部分,如:N=2p=2q+r=2q2r=XY,这样便将对N的译码分别由X译码和Y译码

6、两部分完成。从而大大减少了选择线的数目。4.4某RAM芯片的存储容量为10248位,该芯片的外部引脚应有几条地址线?几条数据线?若已知某RAM芯片引脚中有13条地址线,8条数据线,那么该芯片的存储容量是多少?答:该芯片的外部引脚应有10条地址线,8条数据线。RAM芯片引脚中有13条地址线,8条数据线,那么该芯片的存储容量是8K8位。4.5用Intel 2114 1K4位的RAM芯片组成32K8位的存储器,需要多少块这样的芯片?答:需要64块。注:扩展时需要的芯片数量可以这样计算:要构成一个容量为 MN 位的存储器,若使用 pk 位的芯片(pM,kN),则构成这个存储器需要 ( M/p )( N

7、/k )个这样的存储器芯片 。4.6利用2764芯片(EPROM,8K8位)并采用74LS138译码器进行全译码,在8086系统的最高地址区组成32KB的ROM,请画出这些芯片与系统总线连接的示意图。74LS138G1G2AG2B&OA19A18A17A16A15A14A13ABC2764(1)2764(2)2764(3)2764(4)A12A0CECECECEY4Y5Y6Y7O5.1 试出指令MOV BX,3040H和MOV BX,3040H有什么不同?1、 寻址方式不同:立即数寻址和直接寻址。 2、 运行结果不同:MOV BX,3040H;BX=3040HMOV BX,3040H;将DS段

8、3040H和3041H的内容送BX5.2 指出下列指令是否有错,并说明理由。 (1)MOV DI,SI;错,内存单元之间不能直接进行数据传送(2)MOV CS,AX;错,CS不能做目的操作数(3)MOV 1200,AX;错,立即数不能做目的操作数(4)MOV DS,CS;错,段寄存器之间不能互相传送(5)PUSH FLAG;对(6)POP CS;错,CS不能做目的操作数(7)MOV CL,AX;错,源、目的操作数长度不一致(8)MOV 5000H,1000H;错,内存单元之间不能直接进行数据传送5.3 在8086中,堆栈操作是字操作还是字节操作?已知SS=1050H,SP=0006H,AX=1

9、234H,若对AX执行压栈操作(即执行PUSH AX);试问AX的内容存放在何处?答:堆栈操作是字操作。入栈时“先减后压”(SP先减2,再压入操作数),执行压栈操作后AL的内容存放在10504H,AH的内容存放在10505H。5.4 假如要从200中减去AL中的内容,用SUB 200,AL对吗?如果不对,应采用什么方法?答:不对,立即数不能作为目的操作数。先把立即数传送到一个存储器或寄存器当中。例如:MOV BL,200 SUB BL,AL或: NEG AL ADD AL, 2005.5 编程求AX累加器和BX寄存器中两个无符号数之差的绝对值,结果放内存(2800H)单元中。解:CMP AX

10、, BXCMP AX , BXCLCJA PT1JA PT1SUB AX , BXSUB BX , AXXCHG AX , BXJC PT1MOV DX , 2800HPT1:SUB AX , BXMOV DI , 2800HMOV DX ,BXMOV 2800H , AXMOV DI , AXHLTHLTHLTPT1:SUB AX , BXPT1:SUB BX ,AXMOV DX ,2800HMOV DI ,2800HMOV DX , AXMOV DI , BXHLTHLT5.6 若有两个4字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存储单元,将所求的和存放在2000H

11、开始的内存单元中,试编制程序。MOV DI , 2000HLEA SI , 3000HMOV AX ,DIMOV DX , DI+2ADD AX , SIADC DX , SI+2MOVDI , AXMOVDI+2 , DX5.7 用两种方法写出从88H端口读入信息的指令,再用两种方法写出从44H端口输出数据56H的指令。方法一:IN AL , 88H方法二:MOV DX , 0088HIN AX , DX MOV AL , 56HMOV AL ,56H OUT 44H , ALMOV DX ,0044H OUT DX , AL 6.12 指出以下四条指令的作用(HEX为数据段的一个变量名)

12、MOV BX, HEX;将变量HEX的内容传送到BX寄存器 LEA BX, HEX;取变量HEX的偏移地址送BX MOV BX, OFFSEG HEX;BX指向变量HEX的偏移地址 MOV BX, SEG HEX;将变量HEX所在段的段地址传送到BX6.13 下面是变量定义伪指令,DATA SEGMENT BUF DW 3 DUP(5,2 DUP(8)CED DB Welcome to you, ODH , OAH ,$ADDR DW BUFCOUNT EQU $-CEDDATA ENDS问: 按内存单元存放的先后次序,按字节写出数据段中的数据。05H, 00H, 08H, 00H, 08H,

13、 00H, 05H, 00H, 08H, 00H, 08H, 00H, 05H, 00H, 08H, 00H, 08H, 00H,57H, 65H, 6CH, 63H, 6FH, 6DH, 65H, 20H, 74H, 6FH, 20H, 79H, 6FH, 75H,0DH, 0AH, 24H, 00H, 00H 说明 对BUF, CED, ADDR等变量施行TYPE, LENGTH SIZE运算符后,其结果分别为多少?TYPE BUF = 2LENGTH BUF = 3SIZE BUF = 6TYPE CED = 1LENGTH CED = 1SIZE CED = 1TYPE ADDR =

14、2LENGTH ADDR = 1SIZE ADDR = 2 COUNT的值为多少?196.17 编写一个将16位二进制数转化为四位十六进制数的程序,并将十六进制数的各位显示出来。注:答案中给了一个假定的16位二进制数。DATASEGMENTBINDW1001110101111011BHEXASC DB 4 DUP(20H) DB $DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACKl ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKlBINHEX: MOVCH,4;十六进制数的位数MOVBX,BIN;取待转移数

15、据MOVDI,OFFSETHEXASC;取存放ASCII码首地址CONV1: MOVCL,4ROLBX,CL;取4位二进制数MOVAL,BLANDAL,0FHCMPAL,09H;是0-9吗?JBEASCI;是,转移ADDAL,07H;是A-F,先加07HASCI:ADDAL,30H;加30HMOVDI,AL;存结果INCDI;修改指针DECCHJNECONVI;计数未完,继续LEADX, HEXASCMOVAH,09HINT21HCODEENDSENDBINHEX很多同学的答案:DATASEGMENTADW 4XDW(16位二进制数)YDB4 DUP(?)DATAENDSSTART:MOVCX

16、, ALEA DI, YAGAIN:MOVBX, XPUSH CXDECCXMOVING:SHRBX, 4LOOPMOVINGPOP CXANDBL, 0FHCMPBL, 09HJGDAYUADDBL, 30HJMPXIAOYUDAYU:ADDBL, 37HXIAOYU:MOVDI, BLINCDILOOP AGAINLEADX, YMOVAH, 09HINT21HCODEENDSEND START7.1 名词解释(1) 时钟周期:一个时钟脉冲的时间长度,CPU的时钟频率的倒数,也称T状态。(2) 总线周期:CPU中,BIU完成一次访问存储器或I/O端口操作所需要的时间,称作一个总线周期,也称

17、机器周期(Machine Cycle)。 (3) 指令周期:执行一条指令所需的时间称为指令周期。(4) 等待周期:在T3和T4之间插入的周期。(4) (5) 空闲状态:CPU不执行总线周期时的状态。(6) 时序:计算机操作运行的时间顺序。8.5 简述CPU与外设以查询方式传送数据的过程。现有一输入设备,其数据端口的地址为FEE0H,并从端口FEE2H提供状态,当其D0位为1时表明输入数据准备好。试编写采用查询方式进行数据传送的程序段,要求从该设备读取64个字节并输入到从2000H:2000H开始的内存中。(程序中需加注释)P144145页。MOV AX, 2000HMOV DS,AX;设定段基

18、址MOV DI, 2000H;目的地址送DI MOV CX, 64;字节数READ:MOV DX, 0FEE2H;指向状态口IN AL, DX;读入状态位 TEST AL, 01H;数据准备好否? JZ READ;否,循环检测MOV DX, 0FEE0H;指向数据口 IN AL, DX;已准备好,读入数据 MOV DI, AL;存到内存缓冲区中 INC DI;修改地址指针 LOOP READ;未传送完,继续传送很多同学的答案:MOVCX, 64NEXTIN:INAL, 0FEE2HTEST AL, 01HJZNEXTININAL, 0FEE0HMOV BX, 2000HMOV 200HBX,

19、ALINC BXLOOP NEXTIN8.6 简述中断传送的特点。中断传送的显著特点是:能节省大量的CPU时间,实现CPU与外设并行工作,提高计算机的使用效率,并使I/O设备的服务请求得到及时处理。I/O主动,CPU被动。9.3 设8259A应用在8086系统,采用电平触发方式,中断类型号为60H-67H,采用特殊全嵌套方式,中断非自动结束,非缓冲工作方式,端口地址为63H和64H,写出其初始化程序。ICW1=00011011B=1BH,ICW2=01100000B=60H,ICW4=00010101B=15HICW1必须写入到偶端口地址MOV AL, 1BHOUT 64H, ALMOV AL

20、, 60HOUT 63H, ALMOV AL, 15HOUT 63H, AL9.4 设8259A级连应用于8086系统,从片的中断请求线接于主片的IR7输入端,主片端口地址为64H和66H,从片端口地址为84H和86H,主片IR0的中断向量号为50H,从片IR0的中断向量号为58H,主片工作方式同9.3,从片工作方式采用缺省工作方式,编写初始化程序,并画出硬件连接电路图。64H = 01100100B84H = 10000100B66H = 01100110B86H = 10000110B82598259CSCSINTIR7CAS2CAS1CAS0CAS2CAS1CAS08086INTINTR

21、RDWRRDWRRDWRY3Y4A0A1G1G2AG2BCBAA7A6A5A211M/IOA4A3A0数据总线138A0主片:ICW1=00011001B=19HICW2=01010000B=50HICW3=10000000B=80HICW4=00010101B=15H从片:ICW1=00011001B=19HICW2=01011000B=58HICW3=00000111B=07HICW4=00000001B=01H10.3 试按如下要求分别编写8253的初始化程序,已知8253的计数器02和控制字寄存器I/O地址依次为40H43H。(因为地址小于256,所以可以不用DX。)(1)使计数器1工

22、作方式0,仅用8位二进制计数,计数初值为128。计数器1的通道地址为:41H;128=80H控制字:01010000B=50HMOV AL , 50HOUT 43H ,ALMOV AL ,80HOUT 41H ,AL(2)使计数器0工作方式1,按BCD码计数,计数值为3000。计数器0的通道地址为:40H;3000的BCD码为3000H 控制字:00110011B=33HMOV AL , 33HOUT 43H , ALMOV AL , 00HOUT 40H , ALMOV AL , 30HOUT 40H , AL(3)使计数器2工作方式2,计数值为02F0H。计数器2的通道地址为:42H控制字

23、:10110100B=B4HMOV AL , B4HOUT 43H , ALMOV AL , F0HOUT 42H , ALMOV AL , 02HOUT 42H , AL10.4 设8253计数器02和控制字寄存器的I/O地址依次为F8HFBH,说明如下程序的作用。MOV AL, 33H;00110011B 计数器0,先低位后高位,方式1,BCD码计数OUT 0FBH, AL;写控制字MOV AL, 80H;置计数初值低位字节80HOUT 0F8H, AL;先写低位字节MOV AL, 50H;置计数初值高位字节50HOUT 0F8H, AL;写高位字节程序的作用为:使计数器0工作在方式1,用

24、BCD码计数,计数初值为5080。10.5 设8253的通道02和控制端口的地址分别为300H、302H、304H和306H,又设由CLK0输入计数脉冲频率为2MHz。要求通道0输出1.5kHz的方波,通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲,通道2每秒钟向CPU发50次中断请求。试编写初始化程序,并画出硬件连线图。通道0:输出方波则工作在方式3;计数初值为n0=2MHz/1.5kHz1334=536H(1.499kHz)控制字为:00110110B=36H通道1:输出序列负脉冲则工作在方式2;计数初值为n1=1.5kHz/300Hz=5=05H控制字为:0101010

25、0B=54H通道2:每秒钟向CPU发50次中断请求则工作在方式2;计数初值为n2=300/50=6=06H控制字为:10010100B=94H初始化程序:通道0: MOV DX , 306H MOV AL , 36H OUT DX , AL MOV DX , 300H MOV AL , 36HGATE0GATE1GATE2CLK0OUT0CLK1OUT1CLK2OUT22MHz1.5KHz方波300Hz序列负脉冲每秒50次中断信号CSA1A0WRRDD7D0I/O译码M/IOA7A0A2A1WRRDD7D0+5V OUT DX , AL MOV AL , 05HOUT DX , AL11.3编

26、程使8255A的PC5端输出一个负跳变。如果要求PC5端输出一个负脉冲,则程序又如何编写?设端口地址分别为:B0H B2H B4H B6H。系统复位后8255A的所有端口都被置为输入。控制字为:10000000B=80H输出负跳变:MOVAL,80HOUTB6H,ALMOVAL,0BHOUTB6H,ALMOVAL,0AHOUTB6H,AL输出负脉冲:MOVAL,80HOUTB6H,ALMOVAL,0BHOUTB6H,ALMOVAL,0AHOUTB6H,ALMOVAL,0BHOUTB6H,AL11.5设一工业控制系统,有四个控制点,分别由四个开关K0K3控制,控制点的状态用发光二极管L0L3表示

27、,开关打开则对应的发光二极管亮,表示该控制点运行正常;开关闭合则对应发光二极管不亮,说明该控制点出现故障。画出系统的结构框图并编写程序。设端口地址分别为:B0H B2H B4H B6HA口、B口都工作在方式0,A口输入,B口输出,C口未用控制字为:10010000B=90HMOV DX,0B6H ;控制字寄存器 MOV AL,10010000B ;控制字 OUT DX,AL ;写入控制字TEST:MOV DX,0B0H ;指向A口 IN AL,DL ;从A口读入开关状态 MOV DX,0B2H ;指向B口 OUT DX,AL ;B口控制LED,指示开关状态 JMP TEST;循环检测 +5VK

28、3K2K1K0LED3LED2LED1LED0PA3PA2PA1PA0PB3PB2PB1PB0D7D0RDWRRESET8255ACSA1A0Y3CBAG1G2AG2BD7D0RDWRRESETM/IOA2A1A3A4A5A0A6A78088112.4 设16550采用18.432MHZ基准时钟,端口地址为3F83FFH,要求的波特率为19200,字符格式为8位数据位、偶校验、1个停止位,试写出其初始化程序。LCR地址:3FBH DL地址:3F8(DLAB=1) DH地址:3F9(DLAB=1) 除数=60=003CH LCR的值:00011011B=1BH FIFO地址:3FAH;赋值10000111B=87HMOV DX, 3FBH;DX指向LCRMOV AL,80H;置DLAB=1 OUT DX,AL MOV DX, 3F8H;DX指向DLMOV AL,3CH; OUT DX,AL;送除数低字节 INC DX;DX指向DHMOV AL,00H OUT DX,AL;送除数高字节MOV DX, 3FBH;DX指向LCRMOV AL,1BH;8位数据位、偶校验、1个停止位 OUT DX,AL MOV DX, 3FAHMOV AL,87H;允许FIFO OUT DX,AL

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!