320 likes | 448 Views
微机与接口作业. 第一章. 什么是机器码(数)?什么是真值? 微处理器由哪几部分组成?各部分的功能是多少? 什么是单片机和单板机? 什么是微机的系统总线?有几种?功能是什么? 何为引脚的分时复用?如何从 8088 的地址、数据复用引脚准确地得到地址和数据信息? 标志寄存器的功能及各种标志的意义是什么?进位标志和溢出标志的区别是什么?. 查表得出下列字符 ASCII 码:回车、换行、空格、 $ 、 / 、*、 9 、 A 、 B 、 a 、 b 。 写出下列数表示的无符号数和带符号数的范围。 ( 1 ) 8 位二进制数 ( 2 ) 16 位二进制数
E N D
第一章 • 什么是机器码(数)?什么是真值? • 微处理器由哪几部分组成?各部分的功能是多少? • 什么是单片机和单板机? • 什么是微机的系统总线?有几种?功能是什么? • 何为引脚的分时复用?如何从8088的地址、数据复用引脚准确地得到地址和数据信息? • 标志寄存器的功能及各种标志的意义是什么?进位标志和溢出标志的区别是什么?
查表得出下列字符ASCII码:回车、换行、空格、$、/、*、9、A、B、a、b。查表得出下列字符ASCII码:回车、换行、空格、$、/、*、9、A、B、a、b。 • 写出下列数表示的无符号数和带符号数的范围。 • (1)8位二进制数 (2)16位二进制数 • 用8位和16位二进制数,写出下列数的补码。 • (1)+1 (2)-1 (3)+45 • (4)-45 (5)+127 (6)-128 • 微机某内存单元的内容为C5H,若它表示的是一个无符号数,该数对应的十进制数是多少?若它表示的是一个带符号数,该数对应的十进制数是多少?
将下列十进制数分别转化为二进制数(保留4位小数)、十六进制数(保留4位小数)和压缩BCD数将下列十进制数分别转化为二进制数(保留4位小数)、十六进制数(保留4位小数)和压缩BCD数 • (1)125.74 (2)513.85 (3)742.24 • 将下列二进制数分别转化为十进制数和十六进制数 • 1)101011.101 2)110110.1101 • 3)1001.11001 4)100111.0101 • 将下列十六进制数分别转化为二进制数和十进制数 • 1)5A.26 2)143.B5 • 3)6AB.24 4)E2F3.2C • 求A95BH与8CA2H之和;并写出运算后标志寄存器中SF、ZF、CF、OF、PF、AF的值。
8088执行一条指令所需的时间被称为( )周期,而总线周期是指( )。8088典型的总线周期由( )个T组成。若8088的CLK引脚接5MHz的时钟信号,则每个T状态的持续时间为( )。8088执行一条指令所需的时间被称为( )周期,而总线周期是指( )。8088典型的总线周期由( )个T组成。若8088的CLK引脚接5MHz的时钟信号,则每个T状态的持续时间为( )。 • 请简述8088CPU的内部结构各分为哪些模块及其功能。 • 在进行存储器寻址时,什么是8088的逻辑地址和物理地址?其16位的有效地址和20位的物理地址是在何处和如何形成的? • 在8088的工作过程中,什么情况下会产生Tw?它发生在什么具体时刻? • 8088CPU数据总线和地址总线各是多少?其最大存储空间是多少字节?
8088CPU中指令队列起什么作用?其长度是多少字节?8088CPU中指令队列起什么作用?其长度是多少字节? • 简述CPU执行程序的工作原理 • 8086/8088CPU中,存储器为什么要分段?一个段最大为多少字节?最小为多少字节? • 已知某存储单元的逻辑地址为1F00:38A0H,其对应的物理地址是多少? • 已知存储器物理地址为78A00H,计算它对应的逻辑地址。此结果唯一吗?
26、设当前数据段位于存储器的A8000H到B7FFFH,DS段寄存器的内容是什么?26、设当前数据段位于存储器的A8000H到B7FFFH,DS段寄存器的内容是什么? • 27、若CS=8000H,则当前代码段可寻址的存储空间的范围是多少?
第二章 • 2-1、说明以下各指令的源操作数属于何种寻址方式 • MOV AX, [BP] • MOV DS, AX • MOV DI, 0FF00H • MOV BX, [2100H] • MOV CX, [SI+5] • MOV AX, TABLE[BP][DI] • MOV DX, COUNT[BX] • 2-2、已知有关寄存器中的内容为: (DS)=0F100H, (SS)=0A100H, (SI)=1000H, (DI)=2000H, (BX)=3000H, (BP)=4000H. 偏移量TABLE=0AH,COUNT=0BH,说明题2-1中第1小题和第4~7小题指令源操作数的物理地址。
2-4、将偏移地址为5000H的存储单元的一个字传送到6000H单元,要求源操作数和目标操作数分别采用以下寻址方式。2-4、将偏移地址为5000H的存储单元的一个字传送到6000H单元,要求源操作数和目标操作数分别采用以下寻址方式。 • 直接寻址 • 寄存器间接寻址
2-5、说明以下8086/8088指令是否正确,如果不正确,简述理由。2-5、说明以下8086/8088指令是否正确,如果不正确,简述理由。 • MOV AL, SI • MOV [1001H], [1000H] • MOV DS, 2000H • MOV CS, AX • PUSH 5000H • POP DL • IN AX, 1234H • XCHG BX, 0F000H
2-6、 阅读以下程序段,说明其运行结果。 • MOV BX, 0F100H • MOV BH, [BX] • MOV AH, [BX] • 初值: (F100H)=‘A’, (4100H)=‘B’ • 结果: (AH)=H • MOV SI, 2100H • MOV [2800H], SI • MOV SP, 2800H • POP DI • 结果: (DI)=H, (SP)=H
MOV SI, 2000H • MOV DI, 3000H • MOV SP, 0FF00H • PUSH SI • PUSH DI • XCHG SI, DI • MOV AL, [SI] • MOV BL, [DI] • POP SI • POP DI • 初值: (2000H)=‘1’, (3000H)=‘a’ • 结果: (SI)=H, (DI)=H, (AL)=H, (BL)=H • (SP)=H
2-7、用8086/8088指令编写程序段,分别实现以下要求:2-7、用8086/8088指令编写程序段,分别实现以下要求: • 将1000H和1001H内存单元中的字节互换 • 将2000H和2100H内存单元中的字互换 • 将BL、CL和DL三个寄存器的内容互换,→BL→CL→DL→
2-8、说明以下8086/8088指令是否正确,如果不正确,简述理由。2-8、说明以下8086/8088指令是否正确,如果不正确,简述理由。 • ADD BL, 0F100H • SUB ES, 20H • AND 0FH, AL • CMP [SI], [DI] • INC 2000H • MUL BL, CL • DIV 08H • SAL AX, 5
2-9、已知寄存器AL和BL的内容分别如下,试分析执行ADD AL, BL指令后,寄存器AL以及标志位CF、ZF、SF、AF、OF和PF的内容。 • (AL)=F2H, (BL)=8DH
2-10、已知寄存器AL和BL的内容分别如下,试分析执行SUB AL, BL指令后,寄存器AL以及标志位CF、ZF、SF、AF、OF和PF的内容。 • (AL)=B4H, (BL)=E7H
2-11、阅读以下程序段: MOV SI, 4000H MOV DI, 4100H MOV AL, [SI] ADD AL, [DI] DAA MOV [DI], AL MOV AL, [SI+1] ADC AL, [DI+1] DAA MOV [DI+1], AL • 根据给定的初值,说明运行结果 • 初值: (4000H)=63H, (4001H)=54H, (4100H)=88H, (4101H)=29H • 结果: (4100H)=H, (4101H)=H • 如果在以上程序段中去掉两条DAA指令,但初值不变,则运行结果为: • (4100H)=H, (4101H)=H
2-12、阅读以下程序段: • START: LEA BX, TABLE • MOV CL, [BX] • LOOPER: INC BX • MOV AL, [BX] • CMP AL, 0AH • JNC X1 • ADD AL, 30H • JMP NEXT • X1: ADD AL, 37H • NEXT: MOV [BX], AL • DEC CL • JNZ LOOPER • 假设从地址TABLE开始,10个存储单元的内容依次为:05H,01H,09H,0CH,00H,0FH,03H,0BH,08H,0AH。依次写出运行以上程序段后,从地址TABLE开始的10个存储单元的内容。 • 简单扼要说明以上程序段的功能。
2-13、用一条或几条8086/8088指令实现以下要求:2-13、用一条或几条8086/8088指令实现以下要求: • 将AL寄存器清零,但进位标志CF不变。 • 将AL寄存器和进位标志CF同时清零。 • 将进位标志CF 清零,但AL寄存器内容不变。 • 将AL寄存器中内容的第0、2、4、6位取反,其余位不变 • 将AL寄存器中内容的高4位清零,低4位保留。 • 将AL寄存器中的带符号数(以补码形式存放)取绝对值后存入BL寄存器。 • 统计AX寄存器的内容中“1”的个数,将统计结果存入CL寄存器。
两个不压缩BCD码分别存放在3000H和3001H单元的低4位,高4位均为0。将两个不压缩的BCD码组合成为一个压缩的BCD码,前者放在低4位,后者放在高4位,存放在3002H单元。例如初值为: (3000H)=07H, (3001H)=05H, 要求结果为(3002H)=57H • 将4000H和4001H单元的两个ASCII码分别转换为相应的十六进制数,然后共同存放在4002H单元,前者放在低4位,后者放在高4位。例如初值为: (4000H)=42H=‘B’, (4001H)=36H=‘6’, 要求结果为(4002H)=6BH
将BL寄存器中的无符号数乘以128,高位放在BH寄存器,低位放在BL寄存器,要求执行速度尽量快(移位和循环指令实现)。将BL寄存器中的无符号数乘以128,高位放在BH寄存器,低位放在BL寄存器,要求执行速度尽量快(移位和循环指令实现)。 • 11、一个4位十进制数以压缩BCD码形式存放在偏移地址为DATA和DATA+1的内存单元中,DATA单元存放个位和十位,DATA+1单元存放百位和千位。要求将其转换为相应的ASCII码,存放到以BUFF为首地址的4个内存单元。例如初值: (DATA)=47H, (DATA+1)=92H, 要求结果为: (BUFF)=‘7’, (BUFF+1)=‘4’, (BUFF+2)=‘2’, (BUFF+3)=‘9’ • 12、将立即数100推入堆栈
2-14、假设AL寄存器的内容为FEH, BL寄存器的内容为04H,问: • 执行MUL BL指令后,AX寄存器的内容是什么?标志位OF和CF的值是什么? • 执行IMUL BL指令后,AX寄存器的内容是什么?标志位OF和CF的值是什么?
第三章作业 • 3-1、请分别用DB、DW、DD伪指令写出在DATA开始的连续8个单元中依次存放数据11H、 22H、 33H、 44H、 55H、 66H、 77H、 88H的数据定义语句。
3-2、若程序的数据段定义如下,写出各指令语句独立执行后的结果:3-2、若程序的数据段定义如下,写出各指令语句独立执行后的结果: • DSEG SEGMENT • DATA1 DB 10H, 20H, 30H • DATA2 DW 10 DUP(?) • STRING DB ‘123’ • DSEG ENDS • (1) MOV AL, DATA1 • (2) MOV BX, OFFSET DATA2 • (3) LEA SI, STRING
3-3、试编写求两个无符号双字长数之和的程序。两数分别放在MEM1和MEM2单元中,和放在SUM单元中3-3、试编写求两个无符号双字长数之和的程序。两数分别放在MEM1和MEM2单元中,和放在SUM单元中 • 3-4、假设数据项定义如下: • DATA1 DB ‘HELLO! GOOD MORNING!’ • DATA2 DB 20 DUP(?) • 用串操作指令编写程序段,使其分别完成以下功能: • (1)从左到右将DATA1的字符串传送到DATA2中 • (2)传送完后,比较DATA1和DATA2中的内容是否相同 • (3)把DATA1中的第3和第4个字节装入AX • (4)把AX的内容存入DATA2+5开始的字节单元中。
3-5、执行下列指令后,AX寄存器中的内容是多少?3-5、执行下列指令后,AX寄存器中的内容是多少? • TABLE DW 10,20,30,40, 50 • ENTRY DW 3 • … • MOV BX, OFFSET TABLE • ADD BX, ENTRY • MOV AX, [BX] • 3-6、假设一个48位数存放在DX:AX:BX中,试编写程序段,将该48位数乘以2。
3-7、编写程序段,把从BUFFER控制的100个字节的内存区域初始化成55H、0AAH、55H、0AAH、 ……. 55H、0AAH。 • 3-8、请用子程序结构编写如下程序:从键盘输入一个二位十进制数的月份数(01~12),然后显示出相应的英文缩写名。(交软件) • 3-9、请在屏幕上显示斐波那契数列的前20个值。斐波那契数列的定义如下: (交软件) • F(0)=0 • F(1)=1 • F(n)=F(n-1) +F(n-2), n2
第四章作业 • 4-1、半导体存储器通常可分为哪些类型?分类的依据是什么? • 4-2、若某一存储器存储容量为8K×8位,则它有条数据线和条地址线,用它组成64KB的存储区共需要片 • 4-3、利用6264芯片(SRAM,8K×8位)采用全译码方式,自8088系统的内存取得40000H~43FFFH扩充RAM区,请画出这些芯片与系统总线的连接示意图
4-4、利用2716芯片(EPROM,2K×8位)在首地址20000H处扩充一片容量为8KB的内存,请画出这些芯片与系统总线的连接示意图(译码方式不限)4-4、利用2716芯片(EPROM,2K×8位)在首地址20000H处扩充一片容量为8KB的内存,请画出这些芯片与系统总线的连接示意图(译码方式不限) • 4-5、利用2764芯片(EPROM,8K×8位)并采用74LS138全译码,在8088系统的最高地址区组成32KB的ROM区,请画出这些芯片与系统总线的连接示意图(译码方式不限)
第五章作业 • 5-1、在8088/8086系统中, I/O端口的地址采用怎样的编址方式?访问端口时有几种寻址方式? • 5-2、一般的I/O接口电路安排那三种寄存器?它们各自的作用是什么? • 5-3、有一输入设备,其数据端口的地址为FFE0H,状态口为FFE2H,当其D0位为1时表明输入数据备好。请编写采用查询方式进行数据传送的程序段,要求从该设备读取100个字节并输入到从2000H:2000H开始的内存中(在程序中加上必要的注释)。
5-4、如图1,编写程序段实现操作:当K0单独按下时,发光二极管LED0~LED7将依次点亮,每个维持200ms;当K1单独按下时,发光二极管LED0~LED7将反向依次点亮,每个也维持200ms;其它情况下LED不点亮(设延时200ms子程序DELAY已知,可直接调用)5-4、如图1,编写程序段实现操作:当K0单独按下时,发光二极管LED0~LED7将依次点亮,每个维持200ms;当K1单独按下时,发光二极管LED0~LED7将反向依次点亮,每个也维持200ms;其它情况下LED不点亮(设延时200ms子程序DELAY已知,可直接调用)
10K×8 +5V A15 G 74LS244 三态 缓冲器 8000H IOW IOR K0 K1 ... K7 74LS06 反向 驱动器 CLK 74LS273 8D 锁存器 +5V LED0 D7~D0 LED1 ... LED7 300×8 图1