微机原理作业-8
- 格式:doc
- 大小:473.50 KB
- 文档页数:4
第二章计算机基础(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,试计算下列各式。
微机原理及应用习题集库 (1)一、填空 (1)二、单项选择题 (4)三、程序分析题(每小题6分,共24分) (9)四、判断题(在对的后面画√,错的后面画×): (15)五:分析判断题(判断对错,并指出错误原因) (19)六、简答题: (20)七、程序题 (23)八、接口芯片的综合编程题 (31)(一)8255A (31)(二)8259A (34)(三). 其它端口编程题 (36)微机原理及应用习题集库(请认真复习4、5、7、10、11章后的习题)一、填空1.87的原码是0101 0111B=57H ,补码是29H=0010 1001B ,反码00101000B=28H 。
2.SP总是指向栈顶,若原先SP=2000H,SS=2000H,问CPU执行指令PUSH AX后,AL内容压入物理地址为21FFEH 存储单元中,AH内容压入物理地址为21FFFH 存储单元中。
3.以BX基址寻址,约定的段寄存器是DS ,以BP基址寻址,约定的段寄存器是SS ,变址寻址约定的段寄存器是DS 。
4.假设某个字的值是1234H,其低位字节地址是20H,高位字节地址是21H,那么该字地址是20H 。
5.8086/8088的状态标志有6(SF、PF、AF、OF、ZF、CF)个。
8086/8088系统中,存储器是分段的,每段最大长度是64K 字节,段内偏移地址从0000H 到FFFFH 。
6、CPU访问存储器进行读写操作时,通常在T3状态去检测READY ,一旦检测到READY无效,就在其后插入一个T w周期。
7、汇编语言源程序中的语句有三种类型,它们是指令语句,伪指令语句,宏指令语句。
8、、8086CPU寻址外设可以有两种方式,一种是直接寻址方式,另一种是间接寻址方式。
9、CPU与外设之间的连接部件称为I/O接口,它的基本功能是在CPU与外设之间起缓冲作用。
10、C PU从主存取出一条指令并执行该指令的时间称(),它通常用若干个()来表示,而后者又包括若干个()。
微机原理作业答案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-1 请说明CPU的功能以及CPU是如何执行指令和程序的。
答:CPU的功能是执行程序和统筹处理计算机系统中各类事务。
CPU执行指令分为3步:取指令、分析指令、执行指令;计算机程序是由一条条指令按一定的顺序排列组成的,CPU执行程序的过程就是一条条指令累计执行的过程,其方式分为串行作业方式和流水线作业方式。
1-2 请说明单片机内部主要是由哪些部件组成的,并说明各部件的作用。
答:CPU:由控制器和运算器构成,控制器的作用是执行指令和协调系统各部件的工作;运算器的作用是进行逻辑运算和算术运算。
存储器:存储计算机工作时使用的信息,即指令代码和数据代码。
I/O接口电路:具有数据缓冲、数据隔离及数据转换的功能。
1-3 请问对于容量位8K的存储器芯片,它的地址线是多少根?答:8K=8192=213,故地址线为13根。
另附:存储器的数据线由存储器的字长决定,例如一块32K×16(存储器容量显示格式:存储单元数×存储单元的字长)的存储器,其地址线为15根,数据线为16根。
1-4 将十进制数78,134,分别用二进制数、十六进制数和8421BCD吗表示。
答:(78)D=(1001110)B=(4E)H=(01111000)8421BCD(134)D=(10000110)B=(86)H=(000100110100)8421BCD注:8421BCD码为4位表示一个十进制数符,本质是符号不是数值,所以不可省略0。
1-5 将下列真值分别转化为用8位和16位二进制数表示的原码、补码和反码。
X=1000100;[X]8位原=[X]8位反=[X]8位补=01000100;[X]16位原=[X]16位反=[X]16位补=0000000001000100X= -1000100[X]8位原=11000100,[X]8位反=10111011,[X]8位补=10111100;[X]16位原=1000000001000100,[X]16位反=1111111110111011,[X]16位补=1111111110111100;X= -0111111[X]8位原=10111111,[X]8位反=11000000,[X]8位补=11000001;[X]16位原=1000000000111111,[X]16位反=1111111111000000,[X]16位补=1111111111000001;1-6 将下列补码转化成二进制数的真值。
微机原理、汇编与接口技术第八章习题答案8.1端口地址为380H~383H 4个A端口基本输入、B端口基本输出的方式控制字为90H,方式控制字寄存器的端口地址为383H。
初始化程序段如下:MOV AL, 90HMOV DX, 383HOUT DX, AL8.2MOV DX, 383HMOV AL, 80H ;3个端口基本输出的方式控制字80HOUT DX, ALMOV AL, 0EH ;PC7置“0”的置位/复位字0EHOUT DX, ALMOV AL, 9 ;PC4置“1”的置位/复位字09HOUT DX, AL8.3stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentBUF DB 0data endscode segmentstart pro farassume ss: stack, cs: code, ds: datapush dssub ax,axpush axMOV ES,AX ;ES为中断向量表的段地址 0000Hmov ax,datamov ds,axMOV DX,383H ;A端口方式1输入MOV AL,0B0HOUT DX,ALMOV AL,9 ;PC4置1,允许A端口中断OUT DX,ALMOV AX,SEG IS8255 ;填写中断向量表MOV ES:01C6H,AXMOV AX,OFFSET IS8255MOV ES:1C4H,AXMOV DX,380H ;A端口的端口地址送DXIN AL,0A1H ;修改中断屏蔽字,允许IQR9中断IND AL,0FDHOUT 0A1H,ALJMP $IN AL,0A1H ;恢复中断屏蔽字,禁止IRQ9中断OR AL,02HOUT 0A1H,ALretIS8255: IN AL,DX ;读键值MOV BUF,AL ;存键值MOV AL,61H ;指定EOI命令OUT 0A0H,ALMOV AL,62HOUT 20H,ALPOP AX ;修改返址INC AXINC AXPUSH AXIRETstart endpcode endsend start8.4控制程序的框图stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentBUF DB 00H, 10H, 10H, 10H ;SEGPT表中位移量为10H处的显示代码为全灭SEGPT DB 40H, 79H, 24H, 30H, 19H, 12H, 2,78HDB 0, 18H, 8, 3, 46H, 21H, 6, 0EH, 7FHKYTBL DB 17H, 27H, 2BH,2DH, 47H, 4BH, 4DH, 87H, 8BHDB 8DH, 8EH, 4EH, 2EH, 1EH, 1DH, 1BHdata endscode segmentstart proc farassume ss: stack, cs: cods, ds: datapush dssub ax, axpush axmov ax, datamov ds, axMOV DX, 383HMOV AL, 81H ;A口基本I/O出、PC H出、PC L入MOV DX, ALMOV DI, 0 ;存键入数的指针DISUP: MOV AH, 88H ;位选值, 从PC H输出, 1位为0, 3位为1 MOV BX, 0DISUP1: MOV CL, BUF [BX] ;取一个显示数XOR AL, ALMOV CH, AL ;将显示数扩展为16位MOV DX, 382HOUT DX, AL ;关显示,七段显示器的共阴极为高电平MOV SI, OFFSET SEGPT ;七段显示代码表的偏移首地址ADD SI, CX ;求得显示数的显示代码的偏移地址MOV AL, [SI] ;取显示代码MOV DX, 380H ;输出显示代码到A口OUT DX, ALMOV AL, AHMOV DX, 382H ;输出显示数位到C口(PC H)OUT DX, ALCALL D1MS ;1ms延时CMP AH, 11H ;是最低数位吗?JE DECKY ;是,转键盘扫描和键译码程序INC BX ;否,指向下一位数的存储地址ROR AH, 1 ;移到下一个数位JMP DISUP1DECKY: MOV AL, 7FHMOV DX, 380HOUT DX, AL ;关显示,七段显示器的七段均为低电平MOV AL, 0F0HMOV DX, 382HOUT DX, AL ;输出,使所有行线为低电平IN AL, DX ;读入键盘列数据AND AL, 0FH ;屏蔽无用位(D7~D4)CMP AL, 0FH ;有键按下吗?JE DISUP ;无键按下,返回显示程序CALL D20MS ;有键按下延时20ms,消除键抖动MOV CX, 4 ;行计数器MOV AH, 10HDECKY1: MOV AL, AHOUT DX, AL ;设置选择的行为低电平IN AL, DX ;输入列数据AND AL, 0F0H ;屏蔽无用位CMP AL, 0F0H ;该行有键按下吗?JNE DECKY2 ;有,转键译码SHL AH, 1 ;无,扫描下一行LOOP DECKY1 ;所有行扫描完成了?否,扫描下一行JMP DISUP ;是,转显示DECKY2: OR AL, AH ;行和列数值合并为键码MOV BX, 0DECKY3: CMP AL, KYTBL [BX] ;查键码表,找到按键吗?JE DECKY4 ;找到按键转DECKY4INC BX ;没找到JMP DECKY3 ;循环查找DECKY4: MOV BUF [DI], BL ;存按键INC DICMP DI, 4 ;存满4位键入数吗?JNE DECKY5 ;未存满,不修改指针MOV DI, 0 ;已存4位,修改指针DECKY5: IN AL, DX ;检测键释放AND AL, 0FHCMP AL, 0FHJNE DECKY5 ;直到键释放CALL D20MS ;消去键释放时的抖动等待20msJMP DISUPretstart endpD1MS PROC ;延时1ms子程序┇RETD1MS ENDPD20MS PROC ;延时20ms子程序┇RETD20MS ENDPcode endsend start8.5stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codspush dssub ax, axpush axmov ax, datamov ds, axMOV DX, 383HMOV AL, 90H ;A口方式0入,B口和C口方式0出OUT DX, ALMOV DX, 380HIN AL, DX ;从A口读入原码AND AL, AL ;判原码的符号JNS DN ;为正去DNAND AL, 7FH ;为负,取其绝对值MOV DX, 382HOUT DX, AL ;绝对值从C口输出NEG AL ;将负数的绝对值求补DEC DXOUT DX, AL ;负数的补码从B口输出RETDN: INC DX ;正数直接从B口和C口输出OUT DX, ALINC DXOUT DX, ALretstart endpcode endsend start8.68.7设端口地址为380H~383H。
微机原理经典习题练习册(附答案)微型计算机原理与应⽤练习册(附答案)第⼀章计算机基础⼀、问答题1、下列数值或字符串表⽰成相应的ASCII码是多少?(1)换⾏(2)字母“Q”(3))空格(4)汉字“隘”(国标码)(5)汉字“保”(内部码)(6)51 (7)Hello2、下列各机器数所表⽰数的范围是(1)8位⼆进制⽆符号定点整数;(2)8位⼆进制⽆符号定点⼩数;(3)16位⼆进制⽆符号定点整数;(4)⽤补码表⽰的16位⼆进制有符号整数;3、(111)X=273,基数X=?4、有⼀个⼆进制⼩数X=0.X1X2X3X4X5X6(1)若使X≥1/2,则X1……X6应满⾜什么条件?(2)若使X>1/8,则X1……X6应满⾜什么条件?5、有两个⼆进制数X=01101010,Y=10001100,试⽐较它们的⼤⼩。
(1) X和Y两个数均为⽆符号数;(2) X和Y两个数均为有符号的补码数。
6、⼀个⽤⼗六进制表⽰的两位整数,如果改⽤⼗进制数表⽰,顺序正好颠倒,该数是多少?⼆、填空题1、对于R进制数来说,其基数(能使⽤的数字符号个数)是,能使⽤的最⼩数字符号是。
2、⼋进制数的基数为8,能⽤到的数字符号个数为。
3、⼗进制数72转换成⼋进制数是。
4、与⼗进制数49.875等值的⼋进制数是。
5、与⼗进制数67等值的⼗六进制数是。
6、⼗进制⼩数0.6875转换成⼗六进制数是。
7、⼆进制数101.011转换成⼗进制数是。
8、与⼆进制数101110等值的⼋进制数是。
9、⼗六进制数0E12转换成⼆进制数是。
10、汉字国标码字符集中共包含有个汉字和图形符号。
11、把汉字区位码的区码和位码都加上⼗六进制数,即得到汉字国标码;把汉字区位码的区码和位码都加上⼗六进制数,即得到汉字机内码。
12、将下列⼗进制数8609、5254、2730、1998变为8421BCD码分别是。
三、选择题1、在计算机机内部,⼀切信息的存取、处理和传送都是以形式进⾏的。
第1章答案6. 解:(1) (0.653)10=(0.A72B)16128.016008.0008.1116688.02688.216168.07168.716448.0448.1016653.0 =⨯=⨯=⨯=⨯=⨯B A (2) (0.109375)10=(0.1C00)16C00.121675.0175.116109375.0=⨯=⨯(3) (0.4567)10=(0.74EA)1646592.4162912.02912.10166432.06432.14169152.049152.4163072.073072.7164567.0 =⨯=⨯=⨯=⨯=⨯A E 7. 解:(1)783 = 30FH30163031648154816783 =÷=÷=÷(2)5372=14FCH1016141162015201633512335165372 =÷=÷=÷=÷(3)957=3BDH301631131659135916957 =÷=÷=÷9. 解: (1)12813 B 0001101.02222222754723=++=++---原码:0.0001101B 反码:0.0001101B 补码:0.0001101B (2)12812-B 0001100.0)22(2221281254723-=+-=+-=--- 原码:1.0001100B 反码:1.1110011B 补码:1.1110100B (3)6417-B 0100010.0)22(222641762604-=+-=+-=--- 原码:1.0100010B 反码:1.1011101B 补码:1.1011110B 10. 解:0113101221111.021111.01.1112222217+-⨯+=⨯+=+=+++= 浮点形式为:0011 0111100100465601211.0211.0000011.022222643----⨯=⨯==+=+= 浮点形式为:1100 0110000100211.0643-⨯-=-浮点形式为:1100 111000011171036210010011.021*******.01.100100122225.73---⨯=⨯==+++=浮点形式为:1111 1100101(舍入处理:0舍1入法)第2章答案5. 答:8086系统中存储器的逻辑地址由段地址(段首址)和段内偏移地址(有效地址)两部分组成;存储单元的物理地址由地址加法器生成,寻址时,CPU 首先将段地址和段内偏移地址送入地址加法器,地址加法器将段地址左移4位并与段内偏移地址相加,得到一个20位的物理地址。
*教材:中国科大《微型计算机原理与接口技术》第5版*思考题:不用写在作业本,不用上交作业;*书面题:z写在作业本上,周一上课前上交作业;z作业本必须有封面,写清课程名、班级、学号、姓名;z作业题标清题号,抄写题目;z答题留有间隙或空行。
CH1思考题:1-5、10、11、13【1.1】将下列二进制数转换成10进制数。
(1)11001010B (2)00111101B (3)01001101B (4)10100100B 【1.2】将下列16进制数转换成10进制数。
(1)12CH (2)0FFH (3)3A8DH (4)5BEH 【1.3】将下列10进制数分别转换成二进制数和16进制数。
(1)25 (2)76 (3)128 (4)134【1.4】求出下列10进制数的BCD码(压缩的BCD码和非压缩的BCD码)。
(1)327 (2)1256【1.5】将英文单词About和数字95转换成ASCII码字符串。
【1.6】求出下列10进制数的原码、反码和补码【1.7】冯•诺依曼结构的计算机由哪几部分组成?大致是如何工作的?【1.8】计算机的硬件和软件分别指什么?【1.9】什么是机器语言、汇编语言和高级语言?【1.10】画出微型计算机的基本结构框图,说明各部分的主要功能是什么。
【1.11】微型计算机系统由哪些部分组成?【1.12】说明下列名称的英文全称和中文含义。
(1)ALU (2)CPU (3)PC (4)DOS 【1.13】 8086和80386各有多少根地址总线?可直接寻址的内存空间各是多少?它们的数据总线各有多少根?CH2思考题:2-4、6、10、13-14、17-18书面题:1、5、7-9、11-12【2.1】 8086/8088CPU可直接寻址多少个内存(字节)单元?多少I/O端口?它们的外部数据总线各有多少根?【2.2】 8086CPU内部由哪两部分组成?它们大致是如何工作的?【2.3】 CPU、EU、BIU的英文全称和中文含义各是什么?【2.4】 8086CPU内部有哪些寄存器?各有什么用途?【2.5】两个带符号数1011 0100B和1100 0111B相加,运算后各标志位的值等于多少?哪些标志位是有意义的?如果把这两个数当成无符号数,相加后哪些标志位是有意义的?(参考例2.2)【2.6】说明8086引脚信号的功能:AD15~AD0、A19/S6~A16/S3、’RD、’WR、M/’IO、CLK、RESET、INTR、NMI、ALE、DT/’R、’DEN。
习题答案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位十六进制数表示。
课后作业第一章作业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 判断下列指令的正误,若是错误的,请说明原因。
微机8微机原理习题答案8.1 ARM指令有哪几种寻址方式?试分别说明。
ARM指令系统支持的常见寻址方式有:寄存器寻址:1. 操作数存放在寄存器中;2.指令地址码字段给出寄存器编号(名);3.指令执行时直接取出寄存器值来操作;立即寻址:1. 操作数包含在指令当中;2. 指令地址码部分就是数据本身;3. 取指时就取出了可立即使用的操作数;寄存器间接寻址:寄存器移位寻址1. 操作数存放在寄存器中;2.指令地址码字段给出寄存器编号(名)及移位表达式;3.指令执行时取出寄存器值并移位,再将结果作为源操作数;寄存器间接寻址:1. 操作数存放在内存单元中;2.指令地址码字段给出 [寄存器编号(名)];3.指令执行时根据寄存器值(指针)找到相应的存储单元;基址变址寻址1. 操作数存放在内存单元中;2.指令地址码字段给出 [寄存器编号(名)]和偏移量;3.指令执行时将基址寄存器的内容与偏移量(<4K)相加/减,形成操作数的有效地址。
4. 常用于查表、数组操作、功能部件寄存器访问等。
多寄存器寻址/块复制寻址:1. 操作数存放在内存单元中;2.指令地址码字段给出 {寄存器编号(名)列表};3.编号高的寄存器总是对应内存中的高地址单元;4. 可完成存储块和16个寄存器或其子集之间的数据传送。
堆栈寻址:1. 操作数存放在内存栈顶单元中;2.指令地址码字段固定使用栈顶指针SP;3.指令执行时同多寄存器/块寻址,可完成多个数据的入栈和出栈;相对寻址:1. 操作数为指令存放地址;2.指令地址码字段为地址偏移量;3.指令执行时同基址寻址,由PC提供基地址根据偏移量完成跳转;8.2 指出下列指令操作数的寻址方式。
1)MOVE R1,R2 寄存器直接寻址2)SUBS R0,R0, #2 立即寻址3)SWP R1,R1,[R2] 寄存器间接寻址4)STR R1,[R0,#-4]! 基址变址寻址5)LDMFD SP! , {R1~R4,LR} 多寄存器直接寻址6)ANDS R0,R0,R1,LSL R2 寄存器移位寻址7)STMIA R1!, {R2~R5,R8} 多寄存器直接寻址8)BL AGAIN 相对寻址8.3 ARM指令中的第二操作数有哪几种表示形式?举例说明。
第8章中断系统与可编程中断控制器8259A1.什么叫中断?8086微机系统中有哪几种不同类型的中断?答:在CPU执行程序的过程中,由于某个事件的发生,CPU暂停当前正在执行的程序,转去执行处理该事件的一个中断服务程序,待中断服务程序执行完成后,CPU再返回到原被中断的程序继续执行。
这个过程称为中断。
8086微机系统中有3种中断:1)外部可屏蔽中断。
2)外部不可屏蔽中断。
3)内部中断2.什么是中断类型?它有什么用处?答:通常用若干位二进制编码来给中断源编号,该编号称为中断类型号。
8086微处理器用8位二进制码表示一个中断类型,有256个不同的中断。
这些中断可以划分为内部中断、外部不可屏蔽中断、外部可屏蔽中断三类。
用处:使CPU识别中断源,从而能正确地转向该中断源对应的中断服务程序入口。
3.什么是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断,实现中断嵌套的条件是什么?答:微处理器在处理低级别中断的过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再接着执行低级的未处理完的程序,这种中断处理方式成为中断嵌套。
使用中断嵌套的好处是能够提高中断响应的实时性。
对于某些对实时性要求较高的操作,必须赋予较高的优先级和采取中断嵌套的方式,才能保证系统能够及时响应该中断请求。
对于可屏蔽中断,实现中断嵌套的条件有:(1)微处理器处于中断允许状态(IF=1)(2)中断请求的优先级高于正在执行的中断处理程序的优先级。
(3)中断请求未被8259屏蔽。
(4)没有不可屏蔽中断请求和总线请求。
4.什么是中断向量?中断类型号为1FH的中断向量为2345H:1234H,画图说明它在中断向量表中的存放位置。
答:中断向量为每个中断服务子程序的入口地址,为32位(16位的偏移地址和16位的段地址),在中断向量表中占用4个地址单元。
在8086CPU组成的计算机系统中,采用最低的1024个地址单元(称为0页)来存储中断向量。
第8章
1. 8253芯片有几个计数通道?每个计数通道可工作于哪几种工作方式?这些操作方式的主要特点是什么?
答:
(1)8253芯片有3个计数通道。
(2)每个计数通道均可工作于6种工作方式。
方式1—可重复触发的单稳态触发器,方式2—自动重装初值的N分频器,方式 3 —方波发生器,方式4—软件触发的选通信号发生器,方式5—硬件触发的选通信号发生器。
输出波形:0、1 单稳输出,2、4、5 为单次负脉冲,3 为方波。
2、3 为连续波形,其余为不连续波形;1、5 可硬件重复触发。
初始电平:写入控制字,只有0为低电平,其余均为高电平;写入初值,在GA TE有效的情况下(计数期间),0、1为低电平,2、3、4、5均为高电平。
触发方式:
0、4为电平触发,上升沿继续。
0是GA TE=0停止计数,GA TE再次为1,从中止处继续。
4是GA TE=0停止,GA TE再次为1,从原装初值开始计数。
1、5为边沿触发,计数过程中再次出现GA TE上升沿,计数器按原装初值开始计数。
2、3为电平触发,上升沿有效,GA TE=0停止计数,计数过程中再次出现GA TE上升沿,计数器按原装初值开始计数。
计数过程重新写入初值:
0、4----在GA TE=1时,立即按新初值开始计数。
1、5----不影响目前的计数,只有在GA TE再次出现上升沿时,按新初值开始计数。
2、3----不影响本次输出,本次计数结束后,若GA TE=1,(重装新初值)按新初值开始计数。
自动重装能力:2、3 具有自动重装能力(其余没有),可输出连续的波形。
可重复触发能力:1、5具有可重复触发能力(其余没有)。
2. 8253的最高工作频率是多少?8254与8253的主要区别是什么?
解:8253的最高工作频率是2MHz。
8254是8253的增强型产品,引脚兼容,功能几乎完全相同,其主要区别在于8253的最高工作频率是2MHz,而8254的最高工作频率是10MHz;8254具有读回功能,可以同时锁存1----3个计数器的计数值及状态值,供CPU读取,而8253每次只能锁存和读取一个通道的计数器,且不能读取状态值。
4. 设8253的通道0----2和控制口的地址分别为300H、302H、304H、306H,定义通道0工作在方式3,CLK0=2MHz,使编写初始化程序,并画出硬件连接图。
要求通道0输出1.5KHz的方波,通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲。
通道2每秒钟向CPU发50次中断请求。
解:
(1)通道0输出1.5KHz的方波,应工作在方式3,2MHz/1.5K Hz=1333,则可得通道0的定时初值为1333=535H。
(2)通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲,应工作在方式2,通道1的定时初值=1.5K Hz /300Hz =5。
(3)通道2每秒钟向CPU发50次中断请求,可工作在方式2(或方式3),以2MHz信号作计数脉冲,通道2的定时初值=2MHz /50Hz=40000=9C40H。
硬件连结图如下图所示。
8253的初始化程序:
;通道0初始化程序
MOV DX,306H
MOV AL,00110110B ;通道0控制字,读写两字节,方式3,二进制计数OUT DX,AL
MOV DX,300H
MOV AL, 35H
OUT DX,AL ;写人低字节
MOV AL, 05H
OUT DX,AL ;写人高字节
;通道1初始化程序
MOV DX,306H
MOV AL,01010100B ;通道1控制字,只读写低宇节,方式2,二进制计数
OUT DX,AL ;写人方式字
MOV DX,302H
MOV AL,05H ;低字节
OUT DX,AL ;写人低字节
;通道2初始化程序
MOV DX,306H
MOV AL, 10110100B ;通道2方式字,读写两字节,方式2,二进制码计数OUT DX,AL
MOV DX,304H
MOV AX,40H ;计数初值字节
OUT DX,AL ;写人低字节
MOV AL, 9CH
OUT DX,AL ;写人高字节
5. 某微机系统中,8253的端口地址为40----43H,时钟频率为5MHz,要求通道0输出方波,使计算机每秒钟产生18.2次中断;通道1每隔15µs向8237提出一次DMA1请求;通道2输出频率为2000Hz的方波。
试编写8253的初始化程序,并画出有关的硬件连线图。
解:
设8253的口地址为40H、41H、42H、43H。
(1)通道0输出方波,应工作在方式3,5MHz/18.2Hz=274725.3>16位定时器的最大定时初值65536。
因此,需要两个计数器的级连。
若以通道2的输出作为通道0的时钟输入,则
可得通道0的定时初值=2000Hz/18.2Hz=110=6EH
(2)通道1每隔15µs向8237提出一次DMA1请求,可工作在方式2(或方式3),通道1的定时初值=15µs /(1/5MHz)=75=4BH。
(3)通道2输出频率为2000Hz的方波,应工作在方式3,通道0的定时初值=5MHz
/2000Hz=2500=9C4H
硬件连结图如下图所示。
8253的初始化程序:
;通道2初始化程序
MOV AL,10110110B ;通道2控制字,读写两字节,方式3,二进制计数
OUT 43H,AL
MOV AX, 9C4H
OUT 42H,AL ;写人低字节
MOV AL, AH
OUT 42H,AL ;写人高字节
;通道0初始化程序
MOV AL,00010110B ;通道0控制字,只读写低宇节,方式3,二进制计数
OUT 43H,AL ;写人方式字
MOV AL, 6EH ;低字节
OUT 40H,AL ;写人低字节
;通道1初始化程序
MOV AL, 01010100B ;通道1方式字,只读写低字节,方式2,二进制码计数OUT 43H,AL
MOV AL, 4BH ;低字节
OUT 41H,AL ;写人低字节。