1、1一习题答案11 解释和区别下列名词术语。(1). 微处理器 P ,微计算机 C,微处理器系统PS。(5). 位、字节、字和双字。(7). RAM 和 ROM(8). I/O 接口和 I/O 设备。(9). 芯片总线、片总线、内总线和外总线。答:(1). 把 CPU 的复杂电路,包括运算器和控制器作在一片或几片大规模集成电路的半导体芯片上,这种集成电路叫微处理器 P。微处理器为核心,配上 RAM、ROM,I/O 接口及有关辅助电路组成的微型化的主计算机装置称为微计算机 C。微处理器为核心构成的专用系统称为微处理器系统PS。(5)一个二进制的位称作位、8 个相邻二进制位称作字节、2 个字节称作字
2、,2 个字(4 个字节)称作双字。(7)能进行随即读写操作的存储器称作 RAM。只读存储器叫 ROM。(8)输入/输出接口电路称作 I/O 接口,通过 I/O 接口接入的外部设备如监视器,键盘、鼠标称作 I/O 设备。(9)位于 CPU 芯片内部,用来实现 CPU 内部各功能单元2电路之间的相互连接和信号的传递的总线叫芯片总线。片总线是微计算机主板或单板微计算机上以 CPU 芯片为核心,芯片与芯片间连接的总线。内总线指微计算机系统中实现插件板之间的连接的总线。如 IBM PC 的 PC 总线,PCXT 总线,PCI、ISA 总线等等。外总线用于系统之间的连接,完成系统与系统之间通信的总线。如
3、RS232,IEE488、USB 等等。 16 将下列十进制数转换为二进制数、十六进制数和 BCD数(1)124625(6)268875解:(1)12401111100B7CH,0.6251610,所以0.6250.AH=0.1010B124.625=7C.AH=01111100.1010B=000100100100.011000100101BCD(2)26825612100001100B10CH,0.8751614,0.8750.EH=0.1110B.268.875=10C.EH=100001100.111B=001001101000.100001110101BCD317 用 16 位二进制
4、数表示出下列十进制数的原码、反码和补码。(1)128(4)5解:(1)+128 的原码和补码反码均为 0000000100000000B (4)5 的原码为 1000000000000101B,反码为1111111111111010B,补码为 1111111111111011B。19 写出系列字母、符号的 ASCII 码(1)B (2)H (3)SP(空格) (4)5 (5)$ (6)CR(回车符) (7)LF (换行)解:(1)42H、 (2)48H 、 (3)20H 、 (4)35H、 (5)24H、 (6)0DH、 (7)0AH110 试绘出以下十六进制数在内存中存放的示意图。设存放地址
5、均为 00H。解:(1)F7H (2)03BAH (3)C804326BH (4)1122334455667788HC8H03H04H02H32H01H6BH00H内容地址11H07H22H06H33H05H44H04H55H03H66H02H77H01H88H00H内容地址03H01HBAH00H内容地址421 请将左边的术语和右边的含义联系起来,在括号中填入你选择的代号字母:1. 字长 (i)a. 指由 8 个二进制位组成的通用基本单元。2. 字节 (a )b. 是 CPU 执行指令的时间刻度。3. 指令 (h)c. PS 所能访问的存储单元数,与 CPU 地址总线条数有关。4. 基本指令
6、执行周期(g)d. 唯一能代表存储空间每个F7H00H内容地址5字节单元的地址,用 5 位十六进制数表示。5. 指令执行时间 (j)e. CPU 访问 1 次存储器或I/O 操作所花的时间。6. 时钟周期 (b)f. 由段基址和偏移地址两部分组成,均用 4 位十六进制数表示。7. 总线周期 (e)g 指寄存器加法指令执行所花时间。8. Cache (k)h. 完成操作的命令。9. 虚拟存储器 (l)i. 指 P 在交换,加工,存放信息时信息的基本长度。10. 访存空间 (c)j. 各条指令执行所花的时间不同,不同指令,该值不一。11. 实际地址 (d)k. 为缓解 CPU 与主存储器间交换数据
7、的速度瓶颈而建立的高速存储器。12. 逻辑地址 (f)l. CPU 执行程序时看到的一个速度接近内存却具有外存容量的假想存储器。22 下面列出计算机中常用的一些单位,试指出其用途和含义。6(1) MIPS (2)KB (3)MB (4)GB (5) TB解:(1)MIPS 用来表示计算机运行的速度。1MIPS1 百万条指令/秒。(2)KB 用来表示计算机访存空间大小。1KB 1024(2 10) B(字节)(3)MB 用来表示计算机访存空间大小。1MB1048576 (2 20)B (字节)(4)GB 用来表示计算机访存空间大小。1GB 1024M(2 30) B(字节)(5)TB 用来表示计
8、算机访存空间大小。1TB1024G(2 40)B(字节)24 试将左边的标志和右边的功能联系起来。要求:(1) 在括号中填入右边功能的代号;(2) 填写其类型(属状态标志者填 S:属控制标志者填 C) 。(3) 写出各标志为 0 时表示的状态。标 志 类 为 0 时表示的状态7型1.SF( b ) a. 陷阱标志2.CF( d ) b. 符号标志3.AF( h ) C. 溢出标志4.DF( i ) d. 进位标志5.TF( a ) e. 零标志6.OF( c ) f. 奇偶标志7.PF( f ) g. 中断标志8.IF( g ) h. 辅助进位标志9.ZF( e ) i . 方向标志SSSCC
9、SSCS带符号数为正数结果最高位无进位(借位)低 4 位无进位(借位)串操作步进方向为地址递增8086 正常执行程序带符号数运算未产生溢出运算结构由奇数个1CPU 关闭中断运算结果不为 026 试画出 8086/8088 的寄存器结构,并说出它们的主要用途。解:AX、BX、CX、DX 用作数据寄存器,用作存放操作数、8中间结果。SP 堆栈指针、BP 基址指针、SI 源变趾、DI 目的变趾。IP 指令指针,FH 控制标志、FL 状态标志。CS 存储代码段首趾、DS 存储数据段首趾、SS 存储堆栈段首趾、ES 附加数据段首趾。AH AL AXBH BL BXCH CL CXDH DL DXSP B
10、PSIDI9IPFHFLCS DSSSES28 若一个程序段开始执行之前, (CS)97F0H, (IP)1B40H,试问该程序段启动执行指令的实际地址是什么?解:启动执行指令的实际地址PA97F0H10H1B40H99A40H29 若堆栈段寄存器(SS)3A50H,堆栈指针(SP)1500H,试问这时堆栈顶的实际地址是什么?解:栈顶的实际地址(SS)10H (SP)3A50H10H1500H3BA00H211 将 8086 下列工作方式的特点填于表中。解:特点MN/MX处理器个数总线控制信号的产生10方式最小方式 接5V 1 个 全部由 8086 产生最大方式 接地 可达 3个总线控制器 8
11、288产生213 有一 32 位的地址指针 67ABH:2D34H 存放在 00230开始的存储器中,试画出它们的存放示意图。解:示意图如下地址 内容 类型00230 34H00231 2DH偏移量00232 ABH00233 67H段基址221 列表填写 8086/8088 的存储器和 I/O 的保留空间及其用途:解:8086/8088 保留空间 用途存储器 00000H0007FHFFFF0H FFFFFH中断向量表系统复位启动I/O F8HFFH Intel 保留使用31 指令由 操作码 字段和 操作数 字段组成。8086 的指11令长度在 16 个字节 范围。32 分别指出下列指令中源
12、操作数和目的操作数的寻址方式。若是存储器寻址,试用表达式表示出 EA?PA?(1) MOV SI,2100H (4) ADC AX,BXSI (7)MOV AX,ES:BX解(1)源操作数是立即数寻址,目的操作数是寄存器寻址。(4)源操作数是基址变趾寻址,EA(BX)(SI),PA16(DS) (BX)+(SI),目的操作数是寄存器寻址。(7)源操作数是寄存器间接寻址,其中 EA(BX) ,PA16(ES) (BX),目的操作数是寄存器寻址。33 已知 8086 中一些寄存器的内容和一些存储单元的内容如图 320 所示,试指出下列指令执行后,AX 中的内容(即(AX)?) 。(1)MOV AX
13、,2010H (2) MOV AX,BX (3) MOV AX,1200H(4) MOV AX,BX(5)MOV AX,1100HBX 12(6)MOV AX,BXSI (7)MOV AX,1100HBX+SI(8)LEA AX,SI解:(1) (AX) 2010H(2) (AX)0100H(3) (AX)4C2AH(4) (AX)3412H(5) (AX)4C2AH (6) (AX)7856H (7)0100HBXSIDS 3000H0002HCPU 1CPU CPU CPU12H30100H30101H30102H30103H31200H31201H31202H312-3H B7H4CH7
14、8H34H65H2AH56HM13(AX)65B7H (8) (AX )0002H34 已知(AX) 2040H, (DX)380H,端口(PORT)(80H)1FH, (PORT 1)45H,执行下列指令后,指出结果等于?解:(1)OUT DX,AL;端口(DX )40H(2 ) OUT DX,AX;端口(DX)40H, (DX 1 )20H(3 ) IN AL,PORT;(AL )1FH(4 ) IN AX,80H;(AX)451FH(5 ) OUTPORT1,AL;端口(PORT1)40H(6 ) OUTPORT1,AX ;端口(PORT1)40H端口(PORT11)20H3 5 已知:
15、( SS)0A2F0H , (SP )00C0H , (AX)8B31H, (CX )0F213H,试画出下列指令执行到位置1 和位置 2 时堆栈区和 SP 指针内容的变化示意图。图中应标出存储单元的实际地址 PA。PUSH AXPUSH CX;位置 1POPF ;位置 2 143 7 已知存储器数据段中的数据如图 321 所示。阅读下列两个程序段后,回答:1. 每个程序段的运行结果是什么?2. 两个程序段各占多少字节的内存,执行时间是多少?解:(1 ) LEA SI,NUM1;42T+6TMOV AX,SI;210TADD AX,4SI;39T+9TMOV 8SI,AX;310TADD SI
16、,2;34TMOV AX,SI;210TADC AX,4SI;39T+9TMOV 8SI,AX;310T总计 23 个字节,84 个时钟周期运行结果如图中 SUM 所示。(2)0A2FBCH0A2FBEH0A2FC0H0A2F0H00BCH位置1栈顶SSSP0A2F0H00BEHSSSP位置2栈顶8BH31HF2H13HNUM1NUM2DSACH68H63HA0H84H52H22H58H28H16H41H48HM15MOV AX,NUM1;310TADD AX,NUM2;49T=6TMOV SUM,AX;310TMOV AX,NUM1+2;310TADC AX,NUM2+2;49T+6TMOV
17、 SUM+2,AX;310T总计 20 个字节,70 个时钟周期。可见1. 两个程序运行结果相同。2. 第二个程序占 20 个字节,比前者少 3 个字节,运行时间比前者少 14 个时钟周期。311 已知数据如图 321 所示,低位在前,按下列要求编写程序段:1. NUM1 和 NUM2 两个字数据相乘(均为无符号数) ,乘积放在 SUM 开始的单元。解:MOV AX,NUM1MUL WORD PTR NUM2MOV SUM,AXMOV SUM+2,DXSUM162. NUM1 和 NUM2 两个字数据相乘(均为带符号数) ,乘积放在 SUM 开始的单元。解:MOV AX,NUM1IMULWOR
18、D PTR NUM2MOV SUM,AXMOV SUM+2,DX3. NUM1 单元的字节数据除以 13(均为无符号数) ,商和余数依次放入 SUM 开始的两个字单元。解: MOV AL,NUM1MOV AH,0MOV CL,13DIV CLMOV SUM,AX4. NUM1 字单元的字数据除以 NUM2 字单元的字,商和余数依次放入 SUM 开始的两个字单元。MOV AX,NUM1MOV DX,0MOV CX,NUM2DIV CXMOV SUM,AX17MOV SUM+2,DX3 13 已知(AL)0C4H ,DATA 单元中内容为 5AH,写出下列每条指令单独执行后的结果。 AND AL,
19、DATA;(AL)40H OR AL,DATA;(AL)0DEH XOR AL,DATA;(AL)9EH NOT DATA;(DATA)0A5H AND AL,0FH;(AL )04H OR AL,01H;(AL )0C5H XOR AL,0FFH;(AL)3BH TEST AL,80H;(AL )0C4H所有指令执行后都对标志寄存器有影响。3 19 写出下面指令序列完成的数学计算是什么?解:MOV CL,3;(CL)3SHL AX,CL;(AX)(AX)8SHL BL,CL;(BL)(BL )8SHL CX,CL;(CX)(CX ) 8,此时(CL)18HSHL DH,CL; DH 算术左移
20、 24 位后(DH)0 , CF0183 20 写出能替代下列重复操作指令完成同样功能的 的指令序列1. REP MOVSW2. REP CMPSB3. REP SCASB 4. REP LODSW解:1 AGAIN: MOVSW 3 AGAIN:SCASBDEC CX DEC CXJNZ AGAINN JNZ AGAIN2 AGAIN: CMPSB 4 AGAIN:LODSW DEC CX DEC CXJNZ AGAIN JNZ AGAIN3 23 下面两条短转移指令的转移地址 ADDR1 和 ADDR2分别是多少(用十六进制表示)?1.0220 EB 0A JMP ADDR12.0230
21、EB F7 JMP ADDR2解:JMP ADDR1 的下一条指令的地址偏移为0222H,0222H0AH022CH。ADDR1 地址偏移量为 022CH。JMP ADDR2 下一条指令的地址偏移量为0232H,0232H0FFF7H0229H。ADDR2 地址偏移量为 0229H。193 27 试编写一个程序段,能完成下列数学表达式的功能。1 (X1 )X 0 (1S2 STUDENTS3 STUDENTDATA ENDS4 9 试定义一条宏指令,它可以实现任一数据块的传送(假设无地址重叠) ,源地址、目的地址和块长度作为参数处理。MOVDATA MACRO SN,DN,CN,PNMOV A
22、L,PNCLDTEST AL,#80HJZ CONTSTD24CONT: MOV SI,OFFSET SNMOV DI,OFFSETDNMOV CX,CNREP MOVS DN,SNENDM4 10 设 VAR1和VAR2为字变量, LAB为标号,试指出下列指令的错误,并改正之。(1 ) ADD VAR1,VAR2 (2 )SUB AL,VAR1 (3 ) JMP LABSI(4 ) JNZ VAR1 (5) JMP NEAR LAB (6 ) MOV AL,VAR2解:(1 ) MOV AX,VAR1 (2)MOV AH,0 (3)JMP OFFSET LAB SIADD AX,VAR2 S
23、UB AX,VAR1 (4 ) MOV SI,VAR1 (5 )JMP NEAR PTR LAB (6 )MOV AX,VAR2JNZ TARGET TARGET:JMP SI4 11 已知数据定义如下,问 L1 和 L2 等于多少?25B1DB 1,2,3,123B2DB 0L1 EQU $-B1L2 EQU B2-B1解:$=7,$-B1=7-0=7即 L1 等于 7L2=B2 的偏移地址 6-B1 的偏移地址 0=64 15 用查表法将存放于数据段中的一个有序的十六进制数串(范围:0FH)翻译成 ASCII 码表仍放于数据段中。解:DATA SEGMENTXDHEX DB 0,1,2,3
24、,4,5,6,7,8,9,10,11,12,13,14,15TBASCIIDB 0123456789ABCDEFDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAINPROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATA26MOV DS,AXMOV CX,16MOV SI,OFFSETXDHEXMOV BX,OFFSET TBASCIIMOV AH,0AGAIN: MOV AL,SIMOV DI,AXMOV AL,BX+DIMOV SI,ALINC SILOOP AGAINRETSTART ENDPCODE EN
25、DSEND START4 16 试编写一程序,把 X 和 Y 中的大者存于 BIG 单元,若 XY,则把其中之一存入 BIG 单元。解:DATA SEGMENTX DW ?Y DW ?BIG DW ?DATA ENDS27;-CODE SEGMENTASSUME CS:CODE,DS:DATAMAINPROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV AX,XCMP AX,YJNC STOBIG;无符号数判断,有符号数用 JGEMOV AX,YSTOBIG:MOV BIG,AXRETSTART ENDPCODE ENDSEN
26、D START4 17 试编写一程序,比较两个字符串 STRING1 和 STRING2 所含字符是否完全相同,若相同显示 “MATCH”,反之,则显示“NO MATCH”。解:28DATA SEGMENTSTRING1 DB 50 DUP(?)STRING2 DB 50 DUP(?)MAT DB MATCH$NMAT DB NO MATCH$DATA ENDS;-CODE EGMENTASSUME CS:CODE,DS:DATA,ES:DATAMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV
27、CX, LENGTH STRING1LEA SI, STRING1LEA DI, STRING2LEA DX,MATCLDREPE CMPSB29JE PLAYLEA DX,NMATPLAY: MOV AH,09INT 21HRETSTART ENDPCODE ENDSEND START4 19 假设已编好 5 个乐曲程序,它们的入口地址(含段首趾和偏移地址)存放在数据段中的跳越表 MUSICTAB 中。试编写一个管理程序,其功能是:根据键盘输入的乐曲编号 0004 转到所点乐曲入口,执行乐曲程序。解:DATA SEGMENTMUSICTABDW OFFSET MUSIC0,SEG MUSIC
28、0DW OFFSET MUSIC1,SEG MUSIC1DW OFFSET MUSIC2,SEG MUSIC2DW OFFSET MUSIC3,SEG MUSIC3DW OFFSET MUSIC4,SEG MUSIC4DATA ENDS;-CODE EGMENT30ASSUME CS:CODE,DS:DATAMAINPROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AX;-KEYIN: MOV AH,1INT 21HSUB AL,30HMOV CL,4ROL AL,CLMOV BL,ALMOV AH,1INT 21HSUB AL,30HADD AL,BLMOV AH,0ADD AX,AXADD AX,AXLEA BX, MUSICTAB