1、简答题: (1)在下面表格中填入8088CPU中14个16位寄存器。,(2)简述什么是寻址方式?8088CPU中共有几种寻址方式?(3)写出8088 CPU中20位物理地址的计算公式,若已知物理地址3B2FBH,段基址为3A00H,计算出段内偏移地址。,(4)用图表示微机系统I/O端口的统一编址和独立编址,并作简要说明。,二、说明下列指令是否正确?如不正确,指出错误原因。 MOV AL,BX MUL 57H MOV AL,DI MOV 32H,AL OUT 230H,AL MOV AX, SI MOV BX,SI MOV CS,BP INC BX MOV SS: SI, AX,三、试编写S=0
2、B865H+260CH的程序。两个加数分别放在DATA1和DATA2单元中,运算结果放在RESULT单元中。,答案:,(1),(2)所谓寻址方式,主要是指获得操作数所在地址的方法。 8088CPU中的寻址方式共有8种,分别是立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址-变址寻址、基址-变址-相对寻址和隐含寻址。,(3) 物理地址=段基地址16+偏移地址 偏移地址为3B2FBH-3A000H=12FBH,I/O 端口与存储器统一编址方式,是把 I/O端口当作存储单元看待,每个 I/O 端口被赋予一个存储器地址,I/O 端口与存储器单元的地址作统一安排。I/O 端口单独编址
3、方式是将 I/O 端口和存储器分开编址,即 I/O地址空间与存储器空间互相独立,(4),二、说明下列指令是否正确?如不正确,指出错误原因。 MOV AL,BX;错,两操作数字长不相等; MUL 57H; 错,MUL指令的操作数不能为立即数; MOV AL,DI; 对; MOV 32H,AL; 错,立即数不能作目的操作数 OUT 230H,AL;错,OUT指令中的端口地址超过255时,不能采用直接寻址 MOV AX, SI;错,AX不能作地址寄存器 MOV BX,SI;错,MOV指令的两个操作数不能同时为内存单元操作数 MOV CS,BP ;错,CS不能作目标操作数 INC BX ;错 MOV
4、SS: SI, AX;对,三、 DSEG SEGMENT ;定义代码段 DATA1 DW 0B865H ;定义被加数 DATA2 DW 260CH ;定义加数 DSEG ENDS ;数据段结束 ESEG SEGMENT ;定义附加段 SUM DW 2 DUP(?) ;定义存放结果区 ESEG ENDS ;附加段结束 CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG, ES: ESEG START: MOV AX, DSEG MOV DS, AX ;初始化DSMOV AX, ESEG MOV ES, AX ;初始化ESLEA SI, SUM ;存放结果的偏移地址送给S
5、IMOV AX, DATA1 ;取被加数ADD AX, DATA2 ;取加数MOV ES:SI,AX ;和放到附加段的SUM单元中MOV AH, 4CHINT 21H ;DOS返回 CSEG ENDS ;代码段结束END START ;源程序结束,1、在微机系统中,基本的输入输出方式有哪些?它们分别对应于何种外设 ?2、在8088CPU中,标志寄存器有哪几个标志位?每个标志位为0的含义是什么? 3、在8088CPU中,存储器为什么要分段?一个段最多为多少字节? 4、 8088CPU访问内存的寻址方式有哪几种?举例相关的指令,5、为什么74LS244一般只能作为输入口而不作为输出口? 6、给下面
6、程序段的每条指令加上注释,并指出整个程序段实现的功能。 MOV CX,10 LEA SI,FIRST LEA DI,SECOND STD REP MOVSB,7、IO接口芯片的读写控制信号线要与CPU的那几条信号线联接?,1、答:在微机系统中,主机和外设之间数据的输入和输出方式主要有以下4种:无条件传送、查询、中断和直接存储器存取(DMA)方式。 无条件传送方式主要用于慢速的或者总是“准备好”的外设。 查询方式主要用于简单的、慢速的且对实时性要求不高的外设。 中断方式主要用于实时性要求高的外设。 DMA方式用于一些高速外设以及批量数据交换的场合。,2、答:有CF,PE,AF,ZF,SF,IF,
7、TF,DF。CF为0表示无进位,pe=0表示低8位个数为奇数,af为0表示无辅助进借位,zf=0表示运算结果不为0,sf=0表示运算结果最高为为0.OF=0表示无溢出。If=0禁止相应中断,tf=0表示无程序跟踪方式,df=0表示按增地址方式进行串操作。,3、答:分段的主要目的是便于存储器的管理,可以用16位的寄存器访问20位地址空间的存储器。一个段最多为64KB。 4、答:有直接寻址,如mov ax,2100H; 寄存器间接寻址,如mov ax,bp; 寄存器相对寻址,如mov ax,bx+data; 基址变址寻址,如mov ax,bpsi; 基址变址相对寻址,如mov ax,bpsidat
8、a.,5、答:74LS244是三态门器件,不具有数据的保存能力,它要求信号源能够将信号保持足够长的时间直到被CPU读取,所以它一般只能作为输入接口,而不能直接用作数据输出接口。,6、答:MOV CX,10;CX赋值10LEA SI,FIRST;;读FIRST的偏移地址到SI中LEA DI,SECOND;;读SECOND的偏移地址到DI中STD;DF=0,使地址递减; REP MOVSB;重复将FIRST开始的10个数传送到SECOND中。每传送一个数,SI减一,DI值减一; 功能:实现10个字节内存数的移动。,7、答:CPU的RD,WR与IO/M信号经译码后得到IOR,IOW,分别与IO芯片的
9、RD和WR相连接。,8、利用74LS244作为输入接口(端口地址:0F0H)连接8个开关K0-K7,用74LS273作为输出接口(端口地址:0F1H)连接8个发光二极管。 (1)画出与8088系统总线的连接图,并利用74LS138设计地址译码电路; (2)编写实现下述功能的程序段:若8个开关K0-K7全部闭合,则使8个发光二极管亮;若开关高4位(K4-K7)闭合,则使连接到74LS273高4位的发光二极管亮;若开关低4位(K0-K3)闭合,则使连接到74LS273低4位的发光二极管亮;其他情况,不做任何处理。,MOV DX,F0HIN AL,DXCMP AL,0JZ ZEROTEST AL,0
10、F0HJZ HIGHTEST AL,0FHJZ LOWWJMP STOPZERO: MOV DX,F1HMOV AL,0FFHOUT DX,ALJMP STOPHIGH: MOV DX,F1HMOV AL,0F0HOUT DX,ALLOWW:MOV DX,F1HMOV AL,0FHOUT DX,AL STOP: HLT,1、阅读下面程序段,给出其中每条语句的含义和执行结果。 DSEG SEGMENT DATA DB 65,70 MAX DB ? DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START:MOV AX,DSEG MOV DS,AXLE
11、A BX,DATA MOV AL,BX CMP AL,BX+1 JA NEXT MOV AL,BX+1 NEXT: MOV MAX,ALMOV AH,2MOV DL,MAXINT 21H MOV AH,4CHINT 21HCODE ENDS END START,2、已知中断向量码21H,计算中断子程序的入口地址。 3、 CPU与外部设备进行数据传送时,有几种传送方式?采用哪一种传送方式使cpu的效率最高?,4、说明下列指令是否正确?如不正确,指出错误原因。 1)MOV AL,CH 2)MOV AL,2000H 3)MUL 32H 4)MOV AL, CX 5)AND AL, AL 6)MOV
12、BX, DI 7)MOV DS,2100H 8)INC BX 9)OUT DX, AX 10)MOV AX, BXBP,5、简述8253芯片的几种工作方式。若时钟频率2MHz,端口地址为40H43H,编写程序段使计数器2产生一个1KHz方波。,6、如果一个8253的CLK端频率为1.19MHz,计数器1用于产生周期为10微秒的对称方波。试编写8253的初始化程序。设8253的起始地址为3F0H。,参考答案: 1、DSEG SEGMENT ;定义代码段 DATA DB 65, 84 ;定义比较数 MAX DB ? ;定义比较结果 DSEG ENDS; 数据段结束 CODE SEGMENT;定义代
13、码段 ASSUME CS:CODE,DS:DSEG START:MOV AX,DSEG ;初始化DSMOV DS,AXLEA BX,DATA ;取变量DATA的偏移地址MOV AL,BX ;取DATA的第一个操作数CMP AL,BX+1 ;DATA的两操作数进行比较JA NEXT ; 大于,跳转至NEXT MOV AL,BX+1 ;小于,将第二个操作数赋值给AL NEXT: MOV MAX,AL; 将AL的内容给MAXMOV AH,2;单字符显示MOV DL,MAX; 显示MAX中的内容INT 21H ;调用中断21HMOV AH,4CH; 返回DOSINT 21H;调用中断21HCODE E
14、NDS ;代码段结束END START ;源程序结束 比较数值大小,最后显示,2、 21H*4=84H 84H、85H单元内容为IP,86H、87H单元内容为CS。3、 CPU与外设之间的数据传送有无条件传送,查询传送和中断传送三种方式, 其中中断传送方式的cpu效率最高。,4、 1对;2对;3错,MUL后不能是立即数;4错,CX改为BX;5对; 6错,不能在内存之间直接传送数据;7错,不能直接给DS赋立即数; 8对;9对;10错,BX与BP不匹配。,5、 8253芯片有6种工作方式,分别是方式0(计数结束中断)、方式1 (复触发的单稳态触发器)、方式2(频率发生器)、方式3(方波发生器)、方
15、式4(软件触发选通)和方式5(硬件触发选通)。 计数器2的计数值为2MHz/1KHz=2000 MOV DX, 43H ;选择控制寄存器端口MOV AL, B6H ;控制字也可为0BCHOUT DX, AL ;写控制字MOV DX, 42H ;选择计数器2的端口MOV AL, D0H OUT DX, AL ;写入计数初值的低8位MOV AL, 07HOUT DX, AL ;写入计数初值的高8位,6、 答:计数器工作在方式3.1.19MHz对应的周期为0.8403微秒,则计数值为 10/0.8403=11.9,取整为12.初始化程序:MOV DX,3F3HMOV AL,80HOUT DX,ALM
16、OV DX,3F1HMOV AL,12OUT DX,ALMOV AL,00HOUT DX,ALHLT,7、8253芯片的计数器2每1.5ms产生一个负脉冲,时钟频率为1MHz, 则送到计数器2的计数初值是多少?计数器2工作在什么方式?设8253端口地址为1200H1203H,编写初始化程序。,1)计数器2工作在方式2,而送到计数器2的计数初值为 CLK的周期=1/1MHz=1s 计数初值=1.5ms/1s=15002)以下是8253的初始化程序:MOV DX, 1203H ;选择控制寄存器端口MOV AL, 0B4H ;控制字也可为0BCHOUT DX, AL ;写控制字MOV DX, 120
17、2H ;选择计数器2的端口MOV AX, 1500 OUT DX, AL ;写入计数初值的低8位MOV AL, AHOUT DX, AL ;写入计数初值的高8位,8、8253的端口地址为40H43H,若时钟频率为4MHz,编写程序段使计数器2产生一个1KHz方波并设计硬件电路。,8、 计数器2的初值为:4MHz/1KHz=4000 MOV AL,0B6H(0BCH) OUT 43H,AL MOV AX,4000(A0H) OUT 42H,AL MOV AL,AH OUT 42H,AL,9、编写程序,按以下要求初始化8259A:接口地址为20H和21H;中断为上升沿触发;单片8259A;不写IC
18、W4;与IR0-IR3对应的中断向量码为08H-0BH;IR4-IR7不使用。,9、参考答案: 根据要求,各初始化参数及工作参数如下:ICW1 = 00010010 = 12H;ICW2 = 08H 中断向量码 OCW1 = 11110000 = 0F0HMOV DX,20H ;A0=0,写ICW1MOV AL,12H ;上升沿触发,单片,不写ICW4OUT DX,ALMOV DX,21H ;A0=1,写ICW2,OCW1MOV AL,08H ;ICW2OUT DX,ALMOV AL,0F0H ;OCW1:屏蔽IR4-IR7OUT DX,AL,10、确定如图所示中的74LS244和74LS273的端口地址,10、 00F0H;00F4H,11、若CS=8000H,则当前代码段可寻址的存储空间的范围是多少? 12、用DW伪指令写出在DATA开始的连续8个单元中依次存放数据11H、22H、33H、44H、55H、66H、77H、88H的数据定义语句。,11、80000H8FFFFH 12、 DATA DW 2211H,4433H,6655H,8877H,