700 likes | 882 Views
第一章 习 题. 1 、微型计算机的特点是什么?主要性能指标有哪些?字节和字长有什么区别? 特点:体积小,重量轻,耗电少;可靠性高,结构灵活 ;价格低廉;应用面广。 主要性能指标:字长、运算速度、内存容量。 字节和字长的区别:每 8 位为一个字节,固定不变,它是存储器的基本单位。 字长是计算机一次可并行处理的数据的位数,可以是一个或多个字节。. 2 、微型计算机是由哪几部分组成的?简述各部分的作用。 微型计算机由硬件和软件组成,硬件主要包括 中央处理器( CPU )、存储器、输入接口电路、输出接口电路、总线。 软件主要包括系统软件和应用软件。
E N D
第一章 习 题 1、微型计算机的特点是什么?主要性能指标有哪些?字节和字长有什么区别? 特点:体积小,重量轻,耗电少;可靠性高,结构灵活 ;价格低廉;应用面广。 主要性能指标:字长、运算速度、内存容量。 字节和字长的区别:每8位为一个字节,固定不变,它是存储器的基本单位。 字长是计算机一次可并行处理的数据的位数,可以是一个或多个字节。
2、微型计算机是由哪几部分组成的?简述各部分的作用。2、微型计算机是由哪几部分组成的?简述各部分的作用。 微型计算机由硬件和软件组成,硬件主要包括中央处理器(CPU)、存储器、输入接口电路、输出接口电路、总线。 软件主要包括系统软件和应用软件。 作用略。
3、微处理器、微型计算机、微型计算机系统之间有什联系和区别。3、微处理器、微型计算机、微型计算机系统之间有什联系和区别。 微处理器即CPU 是计算机的核心部件,其利用集成技术将运算器、控制器集成在一片芯片上。主要功能如下: 对指令译码并执行规定动作;能与存储器及外设交换数据;可响应其它部件的中断请求;提供系统所需的定时和控制。 微型计算机是在CPU的基础上配置存储器、I/O接口电路、系统总线。 微型计算机系统是以微机为主体,配置系统软件和外设。
4、微型计算机内部、外部的结构特点是什么?总线结构的优点是什么?4、微型计算机内部、外部的结构特点是什么?总线结构的优点是什么? 微型计算机内部为单总线结构,外部为三总线结构即AB、DB、CB 有了总线结构以后,系统中各功能部件的相互关系变为各个部件面向总线的单一关系,一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能很方便得到扩展。
5、完成下列数制之间的转换 (48)D=( 30 )H=(00110000)B (6DB)H=(1755)D=(11011011011)B (10101101)B=( AD)H=( 173 )D (98)D=( 10011000)BCD=( 1100010 )B (010110010010)BCD=( 592 ) D =(1001010000)B
6、完成下列码制之间的转换 [X]原=BDH [X]补、[X]反、X真值= ? [X]反=3CH [X]补、[X]原、X真值= ? [X]补=8AH [X]反、[X]原、X真值= ? [X]原=BDH [X]补=C3H [X]反=C2H X真值= -61 [X]反=3CH [X]补=3CH [X]原=3CH X真值= 60 [X]补=8AH [X]反=89H [X]原=F6H X真值= -118
7、已知X=72 Y=35 求 X+Y=? X-Y=?Y-X=? [X]原= [X]补=01001000 [-X]补=10111000 [Y]原= [Y]补=00100011 [-Y]补=11011101 [X+Y]补= [X]补+ [Y]补=01101011 = [X+Y]原 X+Y =107 [X-Y]补= [X]补+ [-Y]补=00100101 = [X-Y]原 X-Y =37 [Y-X]补= [Y]补+ [-X]补=11011011 [Y-X]原= 10100101 Y-X =-37
第二章习题 1、 CPU常用的工作方式有哪几种?8086CPU采用哪种工作方式? CPU常用的工作方式有串行方式和并行方式,8086CPU采用并行工作方式。 2、8086CPU有哪几部分组成?各组成部分的主要功能是什么? 8086CPU有执行部件EU和总线接口部件BIU组成。 EU的主要功能是 (1)从指令队列中取出指令。 (2)对指令进行译码,发出相应的控制信号。 (3)向BIU发出请求。 (4)执行指令包括进行算术、逻辑运算,并计算操作数的偏移量。
总线接口部件的功能是: (1)合成20位的地址,完成与外界之间的数据传送。 (2)预取指令送到指令队列。 (3) 发出外部总线控制信号。 3、状态标志和控制标志又何不同?程序中是怎样利用这两类标志的?8086的状态标志和控制标志分别有哪些? 状态标志反映运算结果的状态,其可能对后面的程序有影响;控制标志是人为设定,其对CPU的运行起控制作用。 状态标志有ZF、CF、OF、PF、SF、AF 控制标志有TF 、IF、 DF
4、从引脚信号上看8086和8088有什么不同? ①8088内部(CPU内)有16位数据线,而对外只有8位数据线,因此数据地址复用线与8086不同。 8086:AD0—AD15 8088: AD0—AD7 A8—A15 ② 第28号引脚规定相反。 8086:最小模式下为 M/IO 8088:最小模式下为 M/IO(与8085兼容) ③ 第34号引脚不同 8086:BHE/S 8088:在最大模式中,为高电平; 8088没有高8数据,输出SS0信号,此与其它信号组合表明当前的动作。
5、什么是最小模式和最大模式?它们在使用上有什么不同。5、什么是最小模式和最大模式?它们在使用上有什么不同。 最小模式:系统只有一个8086CPU,所有的控制信号都直接由8086CPU产生,总线控制逻辑电路最少。 最大模式:系统包括两个或多个CPU(一个为主CPU,其他为协CPU),此时8086CPU需要外加总线控制器,以便产生较多的控制信号进行互相联系和协调工作。
6、 段寄存器CS=1200H,IP=FF00H,此时指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗? 物理地址为21F00H,CS和IP值不唯一。 7、已知物理地址为61320H,若CS=5F00H ,求偏移地址。若CS=5200H,求偏移地址。该单元为何有不同的偏移地址? IP分别为2320H和F320H 同一个物理地址是由段基值和偏移地址合成,当段基值不同时偏移地址必然不同。
8、若CS=2200H,问物理地址为222AFH的存储单元是否在此代码段中?8、若CS=2200H,问物理地址为222AFH的存储单元是否在此代码段中? 此时IP=02AFH<FFFFH,故在此代码段中。 9、DS=1100H,SI=ABCDH 求数据所在的物理地址。 DS=2345H,SI=D0CFH 求数据所在的物理地址。 物理地址=11000H+ABCDH=1BBCDH 物理地址=23450H+D0CFH=3051FH
10、A=C236H B=758AH 求A+B、 A-B后各状态标志的值。(CF、SF、ZF、AF、OF、PF) 1100001000110110 + 0111010110001010 10011011111000000 CF=1 SF=0 ZF=0 AF=1 OF=0 PF=1 1100001000110110 - 0111010110001010 0100110010101100 CF=0 SF=0 ZF=0 AF=1 OF=1 PF=1
11、 SP是 堆栈指针寄存器,其内容是栈顶地址的偏移量。 12、ALE信号在T1时刻有效,有效状态是高电平 其作用是作地址寄存器的选通信号 13、8086CPU的引脚RD为低电平,M/IO为高 电平时,表示读存储器 14、8086CPU执行I/O端口写操作时,WR=0 M/IO=0 RD= 1 DT/R= 1 DEN=0
15、若8086CPU工作于最小模式,试指出当CPU完成将AH的内容送到物理地址为91001H的存储单元操作时,以下哪些信号应为低电平:M/IO、WR、RD、BHE/S7、DT/R。若CPU完成的是将物理地址91000H单元的内容送到AL中,则上述哪些 信号应为低电平。 当CPU完成将AH的内容送到物理地址为91001H的存储单元时WR=0 BHE=0 当CPU完成的是将物理地址91000H单元的内容送到AL中时RD=0 DT/R=0
16、什么是引脚的分时复用?请说出8086/8088CPU有哪些引脚是分时复用引脚?其要解决的问题是什么?16、什么是引脚的分时复用?请说出8086/8088CPU有哪些引脚是分时复用引脚?其要解决的问题是什么? 用同一组引脚表示不同的信号即在不同的时刻表示不同的信号;8086中AD0_AD15、A16/S3_A19/S6 。 要解决地址信号的锁存问题。 17、什么是指令周期?什么是总线周期?什么是时钟周期?它们之间的关系如何? 指令周期:执行一条指令所需要的时间。 总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。 时钟周期(T状态):CPU处理动作的最小单位是主频的倒数 一个指令周期包含1个或多个总线周期,一个总线周期包含4个或更多机器周期。
第3章:习题 1.8086常用的寻址方式有哪些?哪几种寻址方式的指令执行速度快? 立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址(又包括多种方式)。 立即数寻址和寄存器寻址速度快。 2.如在指令中不具体指明段寄存器,那么段地址如何确定? 由隐含关系确定: ① [BX] 隐含于DS段②[BP] 隐含于SS段③ [SI]、[DI]单独使用隐含于DS段 ④ 基址寄存器和变址寄存器同时出现,以基址寄存器隐含关系为准。⑤[SP]隐含于SS段⑥[SI]、[DI]用于串操作时,[SI]隐含于DS段, [DI]隐含于ES段。
3.假设DS=3000H,BX=0870H,SI=010CH,d=45h 以MOV指令为例,写出各种寻址方式下的指令形式,并求出数据的有效地址和物理地址。 ① 直接寻址 指令形式: MOV AX, [0045H] EA= 0045H 物理地址=30000H+0045H=30045H ② 基址寻址 指令形式: MOV AX, [BX] EA= 0870H 物理地址=30000H+0870H=30870H ③ 变址寻址 指令形式: MOV AX, [SI] EA= 010CH 物理地址=30000H+010CH=3010CH
④ 相对基址寻址 MOV AX, [BX+0045H] EA= 0870H+0045H=08B0H 物理地址=30000H+08B0H=308B0H ⑤ 相对变址寻址 MOV AX, [SI+0045H] EA= 010CH+0045H=0151H 物理地址=30000H+0151H=30151H ⑥基址变址寻址 MOV AX, [BX+SI] EA= 0870H+010CH=097CH 物理地址=30000H+097CH=3097CH ⑦相对基址变址寻址 MOV AX, [BX+SI+0045H] EA= 0870H+010CH+0045H=09C1H 物理地址=30000H+09C1H=309C1H
4.请指出下列指令中源操作数的寻址方式 ⑴ MOV SI,120 ; 立即数寻址 ⑵ MOV BP,[BX] ;寄存器间接寻址(基址寻址) ⑶ MOV AX,CX ;寄存器寻址 ⑷ POP BX ;栈区寻址(出栈操作) ⑸ AND DL,[BX+SI+30H];寄存器间接寻址(相对基址变址寻址) ⑹ XCHG AL,BUF;直接寻址
5.请指出如下程序段中每条逻辑指令执行后标志ZF、SF和PF的状态5.请指出如下程序段中每条逻辑指令执行后标志ZF、SF和PF的状态 MOV AL,0AH; AL=0AH ZF、SF、 PF不变 AND AL,0FH; AL=0AH 0 、0 、1 OR AL,4BH; AL=4BH 0 、0 、1 XOR AL,AL ; AL=0H 1、 0 、1
6.判断指令的对错,说明错误指令出错原因 ⑴ MOV [SP] ,BX 错,不能用SP间接寻址 ⑵ MOV CX,BX 对 ⑶ JMP BX 对 ⑷ XCHG [SI],WED 错,不能在两个内存单元直接交换 ⑸ SHL AX,CX 错,移位次数必须在CL中 ⑹ XCHG ES:[BX],AL 对 ⑺ LEA AX,[BX+SI] 对 ⑻ IN BL,DX 错,输入指令只能用累加寄存器 ⑼ PUSH CS 对 ⑽ MOV DH,345H 错,数据类型不符。
7.利用三种方法实现内存DS段2000H和2100H的两个字单元的内容互换。7.利用三种方法实现内存DS段2000H和2100H的两个字单元的内容互换。 1、MOV AX, [2000H] MOV BX,[2100H] MOV [2000H],BX MOV [2100H],AX 2、XCHG AX, [2000H] XCHG AX, [2100H] XCHG AX, [2000H] 3、PUSH [2000H] PUSH [2100H] POP [2000H] POP [2100H]
8.已知(SP)=2800H,(AX)=0010H,(BX)=0FA0H, (CX)=1002H。求执行下列程序段后SP、AX、BX、CX的内容 PUSH AX PUSH BX PUSH CX POP BX POP AX 执行后 SP=27FEH AX=0FA0H BX=1002H CX=1002H
9.分析程序执行后AX=?CF=?AF=? MOV AX, 2608H MOV BL, 95H ADD AL, BL 执行后 AX=2703H AAA CF=AF=1 10.分析程序执行后AX=?CF=? MOV AX, 1E54H STC MOV DX, 95H XOR DH, 0FFH 执行后 AX=IEBFH SBB AX, DX CF=1
MOV AL , 67H ; AL= 67H NEG AL ; AL= 99H OR AL , 0A0H ; AL= B9H AND AL , 0F5H ; AL= B1H XOR AL , 0FH ; AL= BEH • MOV AX, 3267H ROL AX, 1 ADC AL, AH MOV [3200H],AX 执行上述指令后 AX=6432H [3200H]=32H [3201H]=64H
13. 已知DS=1000H,将下面程序段执行后的结果填入相应的寄存器和内存单元。 MOV CL,04H MOV AX,0ABCDH SHR AX,CL MOV SI,2000H MOV [SI],AX 则 CL= 04H AX= 0ABCH SI= 2000H [12001H]= 0AH
14.设DS段2100H单元的内容是32H MOV BX,2100H MOV AL,[BX] MOV AH,0 MOV SP, 3210H XCHG AX,BX PUSH AX PUSH BX POP CX 执行程序段后 AX=2100H BX=0032H CX=0032H SP=320EH
MOV AX, 0478H MOV BX, 2346H SUB AL,BL ADC BH,AH 执行指令后AX= 0432H BX=2746H 16.已知DS段3200H开始的内存中顺序存放着十六进制基数(0~F)的ASC码 MOV BX,3200H MOV AL,06H MOV CL,03H
ADD AL,CL MOV CL,AL XLAT XCHG CL,AL MOV CL,AL INC AL INC AL XLAT HLT 执行指令后 AL=42H CL= 09H BX=3200H
MOV AX, 4737H MOV BX, 2856H SUB BH, AH ADC AL, BL DAA 执行上述程序后 AX= 4794H BX=E156H 18. 已知程序段如下: CMP AX, CX JNC K1 JNO K2 JMP K3
假设有以下三组AX、CX值,那么在程序执行后,分别转向哪里?假设有以下三组AX、CX值,那么在程序执行后,分别转向哪里? ⑴ (AX)=E301H (CX)=8F50H CF=0 转K1 ⑵ (AX)=8F50H (CX)= E301H CF=1,OF=0 转K2 ⑶ (AX)=147BH (CX)=80DCH CF=1, OF=1 转K3
第四章习题 1、下面程序段的功能是将内存单元DAT1起始的20个8位二进制数,按正、负分别存放,正数存于BUF1开始的单元,负数存于BUF2开始的单元,仔细阅读程序,改正其中的错误。 CLD STOSW MOV SI,DAT1 JMP GOND MOV DI,BUF1 MIUS: XCHG BX,SI MOV BX,BUF2 STOSB LOP1:LODSB XCHG BX,DI MOV CX,20 GOND: LOOP LOP1 TEST AL,80 HLT JZ MIUS
2、下面程序段的功能是将SI=2000H为起始的6个单元的组合BCD码累加,其结果仍在SI为指针的内存中,仔细阅读程序,改正其中的错误。2、下面程序段的功能是将SI=2000H为起始的6个单元的组合BCD码累加,其结果仍在SI为指针的内存中,仔细阅读程序,改正其中的错误。 MOV SI,2000H MOV SI,AL MOV CX,6 INC SI XOR AL,AL LOOP LOP1 LOP1:ADD AL,[SI ] MOV [SI],AH AAA HLT ADD AH,0
3、下面程序段的功能是将SI=1000H为起始的2个单元的ASCⅡ码(个位数地址较低)转换为1个组合型BCD码,仔细阅读程序,改正其中的错误。3、下面程序段的功能是将SI=1000H为起始的2个单元的ASCⅡ码(个位数地址较低)转换为1个组合型BCD码,仔细阅读程序,改正其中的错误。 MOV SI,1000H AND BL,0FH MOV AL,[SI ] OR AL,BL AND AL,0F INC SI SHL AL,4 MOV [SI],BL INC SI HLT MOV BL,SI
4、下面程序段的功能是在SI=2400H为起始的10个单元的无符号数中,找出最小数存于DI为地址指针的内存中,仔细阅读程序,改正其中的错误。4、下面程序段的功能是在SI=2400H为起始的10个单元的无符号数中,找出最小数存于DI为地址指针的内存中,仔细阅读程序,改正其中的错误。 MOV SI,2400H INC SI MOV CL,10 LOP2: LOOP LOP1 MOV AL,SI MOV [SI],AL LOP1:CMP AL,[SI+1] HLT JNC LOP2 MOV AL,[SI+1]
5、下面程序的功能是将内存单元中连续存放的6个有符号8位二进制数中的最大数找出,并存于MAX单元,仔细阅读程序,改正其中的错误。5、下面程序的功能是将内存单元中连续存放的6个有符号8位二进制数中的最大数找出,并存于MAX单元,仔细阅读程序,改正其中的错误。 DATA SEGMENT ABCD DB 06H,57H,89H,0A7H,0F7H,0E8H,95H MAX DB 1 DUP(?) DATA END CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA
MOV DS, AX MOV SI, OFFSET ABCD MOV CL, SI MOV CH, 0 MOV AL, [SI+1] P1: INC SI CMP AL, SI+1 JC P2 MOV AL, [SI] P2: JMP P1
MOV [SI+1],CL HLT CODE ENDS END START
6、从3#端口输入1个数与预定值相比,将差的绝对值从4#端口输出,编写完成此功能的程序段。6、从3#端口输入1个数与预定值相比,将差的绝对值从4#端口输出,编写完成此功能的程序段。 DATA SEGMENT A DB 50H ;设预定值 DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA GO: MOV AX,DATA MOV DS,AX MOV BL,A IN AL,03H CMP AL,BL JG LB1 XCHG AL,BL LB1: SUB AL,BL OUT 04H,AL CODE ENDS END GO
试编写一汇编程序,将AX中各位取反。然后统计出AX试编写一汇编程序,将AX中各位取反。然后统计出AX 中0的个数,将结果保存到CL中。 DATA SEGMENT NUM DW 2350H ; DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA GO: MOV AX,DATA MOV DS,AX MOV AX ,NUM NOT AX XOR DL,DL MOV CX,16 7、
P1: SHR AX, 1 JNZ P2 INC DL P2: LOOP P1 MOV CL, DL CODE ENDS END GO
8、试编写一汇编程序,要求把一个长度不大于200的字节数组,分别存为正数组、负数组,并统计两个数组的个数,分别存于正、负数组的第一个字节,原数组以“$”结束。8、试编写一汇编程序,要求把一个长度不大于200的字节数组,分别存为正数组、负数组,并统计两个数组的个数,分别存于正、负数组的第一个字节,原数组以“$”结束。 DATA SEGMENT DA1 DB 25H, BDH, 7FH,94H,65H,…,A5H, ‘$’ DA2 DB 201 DUP(?) ; 正数 DA3 DB 201 DUP(?) ; 负数 DATA ENDS
CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX , DATA MOV DS, AX MOV ES, AX LEA SI, DA1 LEA DI, DA2 INC DI LEA BX, DA3 INC BX XOR DX, DX GO1: LODS B CMP AL, ‘$’ JZ JS1
TEST AL,80H JNZ NEG1 STOSB INC DL JMP GO1 NEG1: XCHG BX, DI STOSB INC DH XCHG BX,DI JMP GO1
JS1: LEA DI, DA2 MOV [DI], DL LEA BX, DA3 MOV [BX], DH HLT CODE ENDS END START
9、求出内存单元BUF为起始的20个16位无符号数的累加和和平均值,分别存放于其后的内存单元中。9、求出内存单元BUF为起始的20个16位无符号数的累加和和平均值,分别存放于其后的内存单元中。 DATA SEGMENT NUM DW 2E50H ,C134H,……A76BH SUM DW ?,? AVE DW ? DATA END CODE SEGMENT ASSUME CS:CODE, DS : DATA
BEGIN: MOV AX,DATA MOV DS,AX LEA BX, NUM; LEA DI, SUM; LEA SI, AVE MOV CX, 20; XOR AX, AX; XOR DX, DX LP1: ADD AX, [BX] ; JNC M1 ; INC DX ;