汇编语言与接口技术叶继华(第二版)习题答案
汇编语言与接口技术叶继华(第二版)习题答案
习题一解答:1.3(1)[0.0000]原=0.0000[0.0000]反=0.0000[0.0000]补=0.0000(2)[0.1001]原=0.1001[0.1001]反=0.1001[0.1001]补=0.1001
(3)[-1001]原=11001[-1001]反=10110[-1001]补=101111.4[N]反=1.0101
[N]原=1.1010[N]补=1.0110N=-0.10101.5(1)原码运算:比较可知,正数较大,用正数减负数,结果为正01010011-00110011=[01010011]原-[00110011]原=00100000反码运算:01010011-00110011=[01010011]反+[-00110011]反=001010011+111001100=000011111补码运算:01010011-
00110011=[01010011]补+[-00110011]补=001010011+111001101=000100000
(2)原码运算:比较可知,负数较大,用负数减正数,结果为负0.100100-0.110010=[0.110010]原-[0.100100]原=-0.001110反码运算:0.100100-0.110010=[0.100100]反+[-0.110010]反=0.100100+1.001101=1.110001补码运算:0.100100-0.110010=[0.100100]补+[-0.110010]补=0.100100+1.001110=1.[1**********]01.6(1)(11011011)2=(1×2+1×2+1×2+1×2+1×2+1×2)10=(219)10=([1**********]1)BCD(2)
(456)10=([1**********]0)BCD210(3)(174)8=(1×8+7×8+4×
8)10=(124)10=([1**********]0)BCD210(4)(2DA)16=(2×16+13×16+10×16)10=(730)10=([1**********]0)BCD1.7(1)9876H看成有符号数时,默认为负数的补码,转换为十进制数是:-265069876H=[**************]0B为负数的补码,对其求补得到正数的补码,即[[**************]0B]补
=[**************]0B[1**********]=(1×2+1×2+1×2+1×2+1×2+1×2+1×2+1×2)10=26506所以原负数为-26506(2)9876H看成无符号数时,转换为十进制数是:[**************]1
9876H=[**************]0B=(1×2+1×2+1×2+1×2+1×2+1×2+1×2+1×2)10=390301.8(1)98的压缩BCD 码为:10011000B(2)98的非压缩BCD 码为:[**************]0B1.9(1)[S1+S2]补=[S1]补+[S2]补=00010110+00100001=00110111,无溢出[S1-S2]补=[S1]补+[-S2]补=00010110+11011111=11110101,无溢出(2)[S1+S2]补=[S1]补+[S2]补=00010110+11011111=11110101,无溢出[S1-S2]补=[S1]补+[-S2]补=00010110+00100001=00110111,无溢出(3)[S1+S2]补=[S1]补+[S2]补=01100100+00011110=10000010,有溢出[S1-S2]补=[S1]补+[-S2]补=01100100+11100010=01000110,无溢出(4)[S1+S2]补=[S1]补+[S2]补=10011100+11100010=01111110,有溢出[S1-S2]补=[S1]补+[-S2]补=10011100+00011110=10111010,无溢出
习题二解答:2.1答:8086有哪些寄存器组?各有什么用途?①通用寄存器AX、BX、CX、DX它既可用作16位寄存器,又可将它拆成高、低8位,分别作为两个独立的8位寄存器使用。AX 称累加器。常用于存放算术逻辑运算中的操作数,所有I/O指令都使用累加器与外设接口传送数据;BX称基址寄存器。常用来存放访问内存时的基地址或用作间接寻址时的地址寄存
器。CX称计数寄存器。在循环和串操作指令中用作计数器,指令执行后CX 寄存器中的内容会自动改变。DX称数据寄存器。在I/O指令中用来存放
汇编语言与接口技术叶继华(第二
版)习题答案
端口的地址,在乘除指令中用作辅助寄存器。②4个专用寄存器SP 堆栈指针寄存器。它在堆栈中存放栈顶偏移指针,;BP基址指针寄存器。一般也用来存放访问内存时的基地址;SI源变址寄存器,DI目的变址寄存器。它们常常用在变址寻址方式中。③4个段寄存器CS 代码段寄存器。存放当前程序所在段的段基址;DS数据段寄存器。存放当前程序所用数据段的段基址;SS堆栈段寄存器。存放当前程序所用堆栈段的段基址,ES附加段寄存器。存放当前程序所用辅助数据段的段基址。④指令指针寄存器IP 16位的指令指针寄存器IP 用于存放下一条执行指令的偏移地址。⑤标志寄存器FR 它是16位寄存器,但只使用其中的9位,这9位包括6个状态标志位和3个控制标志位。状态标志记录了前面算术逻辑运算结果的一些特征;控制标志是用户自己通过指令设置的,设置后将对其后的操作产生控制作用。
2.2答:8086流水线技术是利用8086内部指令队列,使8086/8088的执行部件和总线接口部件并行工作。其工作过程如下:当8086的指令队列中有两个空字节,或者8088的指令队列中有一个空字节,总线接口部件就自动执行一次指令周期,从内存中取出后续的指令代码放入队列中。当执行部件需要数据时,总线接口部件根据执行部件给出的地址,从指定的内存单元或外设中取出数据供执行部件使用。当运算结束时,总线接口部件将运算结果送入指定的内存单元或外设。当指令队列空时,执行部件等待,直到有指令为止。若总线接口部件正在取指令,执行部件此时正好发出访问总线的请求,则必须等总线接口部件取指令完毕后,该请求才能得到响应。一般情况下,程序按顺序执行,但当遇到跳转指令时,总线接口部件就使指令队列复位,从新地址取出指令,并立即传给执行部件去执行。所以,8086流水线技术减少了CPU 为取指令而等待的时间,提高了CPU 的利用率,加快了整机的运行速度,也降低了对存储器存取速度的要求。2.3答:为了尽可能使8086/8088CPU适应各种使用场合,8086/8088CPU通常有两种工作模式:最大工作模式和最小工作模式。最小工作模式,就是在系统中只有8086或者8088一个微处理器。在这种系统中,所有的控制信号直接由8086或8088产生,因此,系统中的总线控制逻辑电路被减到最少。最大工作模式,是相对最小工作模式而言。在此工作模式系统中,一般包含两个或两个以上微处理器,但是主处理器只有一个,其他的处理器均为协处理器,协助主处理器工作。2.4答:逻辑地址是由段基址和偏移地址两部分构成,通常由编程人员在指令中使用。8086系统中任何一个存储单元对应20位的物理地址,都是由逻辑地址转换得来的。8086存储器中的物理地址是由内部总线接口部件BIU——地址加法器产生。由地址加法器把16位段寄存器的内容转换为20位物理地址,即段基址左移4位后,再加上有效偏移量地址。
物理地址=CS×16+IP=40000H+2200H=42200H2.5答:8086CPU为了能够对存储器进行字节和字的访问,在技术上将1M 字节的存储器空间分成两个512K 字节(219)的存储体。一个存储体中包含偶数地址,该存储体被称为偶存储体;另一个存储体中包含奇数地址,该存储体被称为奇存储体,两个存储体之间采用交叉编址方式,然后通过A0和BHE 组合就可以确定对哪一组存储体进行访问,是对字节还是对字进行访问。2.6答:在存储器中,对要存放的字,其低位字节可以从奇数地址开始存放,也可以从偶数地址中开始存放;如果从奇数地址开始存放称为非规则存放,按非规则存放的字称为字不对准存放。从偶数地址中开始存放称为规则存放,按规则存放的字称为字对准存放。使用字对准存放要在一个总线周期完成,用字不对准存放则需要两个总线周期才能完成。所以为了加快程序运行速度,编程时应尽可能使用字对准存放。习题三解答:3.6答:(1)MOV(2)MOV(3)MOV(4)MOVCX, BX AX, 1234H AX, WORD PTR [20H]BYTE PTR [BX],20H 3.7答:(1)EA=3000H
(2)EA=1200H(3)EA=3300H(4)EA=4200H(5)EA=4500H3.9答:
(1)段内间接寻址(2)段内间接寻址(3)段间间接寻址
3.8答:(1)立即数寻址(2)直接寻址(3)寄存器间接寻址(4)基址变址寻址(5)相对基址变址寻址(6)寄存器寻址3.10答:(1)直接寻址(2)寄存间接寻址(3)跨段寄存器间接寻址(4)跨段寄存器间接寻址(5)寄存器间接寻址(6)寄存器相对址寻址(7)基址变址寻址
(8)相对基址变址寻址(9)寄存器间接寻址PA=10200HPA=10010H
PA=15010HPA=20010HPA=200A0HPA=10110HPA=10110HPA=10210HPA=10100H
3.12答:(1)AX=0100H(2)AX=1020H(3)AX=1020H(4)AX=5030H
(5)AX=2010H(6)AX=2010H(7)AX=1020H3.13答:(1)SI=0320H
(2)BP=1320H(3)DI=0310H(4)X=0FFF0H
3.11答:(1)MOVAL, 1234H (2)MOVCS, AX (3)MOV[1000],1000H (4)MOVBYTE PTR [BX],1000H(5)PUSHAL (6)INAX, [BX]
(7)SHLAX, 5(8)XCHGDS, AX (9)XCHG[BX],[SI](10)DEC[SI]
(11)NEG1234H (12)MUL05H (13)DIVAX, BX (14)LEAAX, 0100H
(15)AND[BX],[SI]
类型不匹配代码段寄存器不能赋值类型不匹配,目的操作数未指明数据类型类型不匹配类型不匹配源操作数为0~255移位大于1时,应放入CL 中不能为段寄存器两个操作数不能同时为MEM 未指明操作数的数据类型操作数不能是立即数操作数应为REG 或MEM 单操作数,且操作数应为REG 或MEM 源操作数为MEM 两个操作数不能同时为MEM
3.14答:指令MOV AX,0DEC AX NOT AX AND AX,0FFFFH CMP AX,0FFFFH SUB AX,1200H MOV CX,5SAR AX,1SAR AX,CL ADD AX,0FFFFH NEG AX (0-(AX))AX 0000H 0FFFFH 0000H 0000H 0000H 0EE00H 0EE00H 0F700H 0FFB8H 0FFB7H 0049H CF 不影响不影响不影响0111011OF 不影响00000不确定00ZF 不影响01000000SF 不影响10011110
不影响(0)不影响(0)不影响(1)
不影响(1)不影响(0)不影响(0)不影响(1)
3.15答:(1)测试AL 中1、3、5位是否均为“1”(2)对32位数(高位在DX,低位在AX)求补码3.16答:(1)XORAL ,2AH(2)MOVBL ,ALNOT BL TEST BL, 2AH JE L1MOV AL ,0... L1:MOV AL , 1
AL BL BL 高4BL 低4↓AL 低4AL 高4
(3)MOVROL ROL XCHG
CL, AL, BL, AL,
4CL CL BL
AL 高4AL 低4↓BL 低4BL 高4
(3)分析:AL和BL 循环左移4位,然后互换。
(4)PUSHFPOP AX (5)PUSHFPOP AX AND AX, 0FEFFH ;设置TF=D8=0PUSH AX POPF
D3D2
DX D1↓D2D0D1A3D0A2
AX A1↓A3A2A1A0
(6)MOVMOV SHL SHR SHR OR
CL, BX, BX, DX, AX, AH,
4DX CL CL CL BL
0000
D3
(6)分析:用BX 来保存DX 的低4位(左移4位BX,将DX 的低4位保存在BL 的高4位中),然后再按照需求右移4位DX,AX,最后用OR 指令将DX 的低4位(保存在BL 的高4位)合并到AH 的高4位中。
┆
(7)STDMOV MOV MOV MOV MOV REP
0100H AX, DS ES, AX SI, 0163H DI, 01B3H CX, 100MOVSB
┆
80个字节0150H
100个字节
┆
0163H
┆
100个字节
01B3H
┆
(7)分析:如图所示只能是从高地址向低地址传送,且为同一个数据段。
(8)MOVIMUL MOV MOV AL,BYTEPTR A BYTE PTR B BYTE PTR C,ALBYTE PTR C+1,AH;(AX)←A*B
习题四解答:4.1答:指令语句:执行语句,产生机器代码。伪指令语句:不可执行语句,完成数据定义、内存分配等功能。4.2答:1). 标号的属性(标号是一条指令语句的符号地址。标号在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,以便在转移类指令(含子程序调用指令)中直接引用这个标号。标号可作为转移类指令的操作数,即转移地址。)(1).段属性:标号所在段的段基址(通常在CS 段)。
(2).偏移地址属性:标号所在地址与段基址的偏移量值。(3).类型属性:指段内操作(NEAR类型)或段间操作(FAR类型)。2). 变量的属性(发生变化的量称变量。变量经常在操作数字段中出现,在代码段之外的段中定义。变量是一个存放数据的存储单元的名字(符号地址)。也可以定义一个数据区或存储区,但变量仅表示该数据区或存储区的第一个单元(首地址)。)(1).段属性:变量所在的段的段基址,通常在DS、ES中。
(2).偏移地址属性:从段基址到定义变量位置之间的字节数,是16位的无符号数。(3).类型属性:变量所具有的字节数。如:BYTE(单字节长度)、WORD(双字节长度)、DWORD(4字节长度)、DQ(8字节长度)、DT(10字节长度),表示该变量所代表的存储单元所能存放的数据的长度。4.3答:(1)X变量的定义。(2)X符号常量的定义。4.4答:A 01H 02H 03H 04H B 31H 32H 33H 34H C 01H 00H 02H 00H 03H 00H 04H 00H E 34H 12H 00H 00H 4.5答:(1)STR1的偏移地址为:100H(2)NUM为10(因为$=10AH,所以$-STR1=10AH-100H=0AH=10)(3)STR2+3的存储单元内容为
4FH (即第四个字符’O’所对应的ASCII 码)4.6答:分别为:3CH,1EH,0FH
4.9答:(1)(AX)=1234H(2)(AX)=5678H(3)(AX)=5678H4.10答:DATASEGMENT ARRAY EQU THIS WORD ARRAY DB 100DUP (?)DATA ENDS 4.11答:
(1)ARRAY(2)DARRAY(3)BCD(4)STR(5)DATA1DB 12H, 34H, 56H, 0ABH DW 1234H, 5678H, 0ABCDH DW 1234DB ‘STRING’SEGMENT DB 12H, 34H,‘A’,‘B’,‘C’DW 1234H, 5678H, 0ABCDH DB 10DUP (?)DATA1ENDS 4.12答:(1)POPSTAK (2)LESSI,DVAR (3)MOVAX,TYPE VAR
(4)MOVAX,OFFSET VSTR/LEAAX,VSTR 4.13答:(1)VARDW 5050/MOV WORD PTR VAR,50504.14答:(1)LEABX ,DAT1/MOVBX,OFFSET DAT1
(2)MOVCL ,BYTE PTR[DAT2+2](3)MOVBYTE PTR[BUF1+9],11H(4)LEN1=13,LEN2=7(5)MOVCX, DAT2-DAT1lEA SI , DAT1LEA DI , BUF2MOV AX , DS MOV ES , AX CLD REP MOVSB 123‘1’‘2’‘3’-34H 12H 341212H 00H --::--::BUF2BUF1DAT2DAT1
4.15答:LEAMOV MOV 或者:
SI ,STRDH ,[SI]DL ,[SI+6]MOV DH, STR MOV DL, STR+6
计数控制法适用于循环次数已知的循环程序设计,每执行一次循环,计数ν习题五解答:5.1简述汇编语言程序设计的基本步骤答:(1)分析问题,抽象出描述问题的数学模型(2)确定解决问题的算法或解题思想(3)绘制流程图和结构图(4)分配存储空间和工作单元(5)根据流程图编制程序(6)程序静态检查(7)上机调试5.2程序的基本结构分为哪几种?答:3种结构:顺序结构、分支结构、循环结构5.3简述分支程序结构的特点?答:运行方向是向前的,在某一种确定的条件下,只能执行多个分支中的一个分支。5.4简述循环程序结构的特点、循环控制的方法。答:(1)循环程序结构是重复执行某一程序段,直到满足某个条件或达到重复的次数为止。(2)循环结构分为:直到型循环(do_until)和当型循环(do_while)(循环次数可以为0)。循环控制的方法1.计数控制法主程序在调用子程序之前先将入口参数压入堆栈,进入子程序之后,使用出栈指令弹出参数进行处理,子程序处理完毕后将结果压入堆栈,返回主程序后,在主程序中使用出栈指令弹出子程序的处理结果。注意避免与现场保护使用堆栈出现混乱情ν利用预先定义的内存空间存放入口参数或出口参数,主程序将入口参数存放在预定的内存空间中,进入子程序后,子程序到预定的内存空间中取出参数进行处理,并把处理结果存放在预定的内存空间中,作为返回到主程序的参数。适合参数多的情况。(3)堆栈法ν主程序把子程序所需要的入口参数预先存放在指定寄存器中,进入子程序后,子程序直接对这些寄存器内容进行处理,并把处理结果存放在指定的寄存器中,作为返回到主程序的参数。适合参数少的情况。(2)约定存储单元法ν条件控制法适用于循环次数不能预先确定的循环程序设计,程序运行时,通过测试特定的条件来实现对循环的控制,通常用比较指令和条件转移指令配合来实现。5.5简述主程序与子程序的参数传递方法。答:(1)约定寄存器法ν器变化一次(加1或是减1),然后和循环计数结束条件进行比较,以决定是否继续循环。通常用LOOP 指令实现。2.条件控制法
况。5.6什么是递归子程序?设计的关键是什么?答:(1)递归子程序:一个子程序直接或间接地调用自己,这样的子程序称为递归子程序。
(2)设计的关键:递归调用一定要有递归结束的条件,在满足递归结束条件时,必须有一条转移指令实现嵌套的退出,保证能按反向次序退出并返回主程序。5.7答:(1)将一字节数据按位取反,然后与其本身进行逻辑乘,即清0作用;(2)AL的内容为:89H,NUM的内容为:00H。5.8答:(1)求DAT 的平方,并将结果放到DAT+1中。(2)DAT+1的内容为51H 5.9答:
(1)将DAT 第0、2位清0,1、3、7位置1;(2)程序执行后DAT 的内容为0DAH。5.10答:(AL)=0D4H5.11答:(1)双字相加,低位字相加结果放置DAT3中,高位字相加结果放置DAT4中,;(2)两个压缩的BCD 码:4649H 与2758H 相减,结果放置DX 中。5.12答:(1)对BUF 的内容清0,遇到BUF 的内容为0FF 则停止清0。(2)求BUF 中的前10个字节数之和(不考虑进位/溢出),结果放到AL 中。(3)求DAT 中的前10个字节数之和(不考虑进位/溢出),结果放入BUF。(4)从BLOCK 开始的100个字节查找第一个和KEY 相等的元素,找到就将结果放到ADDR 中,否则DI 置0。
5.13答:判断DAT 如果为0,则将AL 放到RES 中;如果为正,将DAT 的值加1,如果为负,将DAT 的值减1,放到RES 中。5.14答:(1)求DAT 存储单元中前10个字节数据之和(不考虑进位/溢出),结果放到预留的空间RES 中。(2)将DAT 存储单元中前10个字节数据扩展成字,然后求和(不考虑进位/溢出),结果放到预留的空间RES 中。(3)求1到100的和结果放到AX 中。(4)(DX)=1×1+2×2+„+10×10。(5)统计AX 中1的个数,存放在BL 中。5.15答:功能:将DAT1存储单元中的字符串反向传送到DAT2存储单元中,所以,DAT2的前5个单元的内容是‘98765’。5.16答:(1)MOV AX, WORD PTR [DAT1+2](2)SUB AX, WORD PTR DAT1MOV WORD PTR DAT3, AX (3)MOV AX, WORD PTR DAT2ADD AX, WORD PTR [DAT2+2]MOV WORD PTR [DAT3+2],AX
5.17答:DATA SEGMENT DAT DW 100, 200, 150, 6DUP(?);XDW
100;YDW 200;ZDW 150DATA ENDS STACK SEGMENT STACK DW 200DUP(0)STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS, AX MOV AX,WORDPTR DAT MOV BX,WORDPTR [DAT+2]ADD AX,BXMOV BX,WORDPTR [DAT+3]SUB AX,BXMOV WORD PTR [DAT+6],AX MOV AH,4CHINT 21H CODE ENDS END START 5.20答:DATA SEGMENT DAT1DB ? DAT2DB ? DAT3DB ? DATA ENDS STACK SEGMENT STACK DB 200DUP(?)STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK
START:MOVAX, DATA MOV DS, AX MOV AL, 7BH MOV BL, AL AND BL, 07H MOV DAT1, BL
MOV CL, 3SHR AL, CL MOV BL, AL AND BL, 07H MOV DAT2, BL SHR AL, CL MOV DAT3, AL MOV AH, 4CH INT 21H CODE ENDS END START 5.21答:DATA SEGMENT DAT1DW ‘A>B$’DAT2DW ‘A
INT 21H JMP EXIT AAB:MOV DX, OFFSET DAT1MOV AH, 9INT 21H EXIT:MOV AH, 4CH INT 21H CODE ENDS>
END START 5.26答:DATA SEGMENT TABLE DW A,B,C,D,EDATA ENDS STACK SEGMENT STACK DB 100DUP(?)STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACKSTART:MOVAX, DATA MOV DS, AX MOV AH, 1INT 21H CMP AL, ‘A’JB EXIT CMP AL, ‘E’JA EXIT AND AL, OFH DEC AL SHL AL,1JMP TABLE[AL]A:MOV DL,‘A’JMP DISPLAY B:MOV DL,‘B’JMP DISPLAY C:MOV DL,‘C’JMP DISPLAY D:MOV DL,‘D’JMP DISPLAY E:MOV DL,‘E’DISPLAY:MOVAH,2INT 21H
EXIT :MOVAH,4CHINT 21H CODE ENDS END START 5.33DATA SEGMENT DAT1DB DAT2DB DAT3DB DAT4DB DAT5DB 00000
DAT DB 76,69,59,85,98,85,75,100,86,95COUNT EQU ($-DAT)/TYPE
DAT DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX CALL GRADE MOV AH,4CH INT 21H GRADE PROC MOV CX,COUNT MOV SI,0COMPARE:CMP DAT[SI],60JGE NEXT INC DAT1JMP
ADD_SINEXT:CMP DAT[SI],69JBE SAVE_DCMP DAT[SI],79JBE SAVE_CCMP DAT[SI],89JBE SAVE_BCMP DAT[SI],100JBE SAVE_AJMP ADD_SI
SAVE_D:INCDAT2JMP ADD_SISAVE_C:INCDAT3JMP ADD_SISAVE_B:INCDAT4JMP ADD_SISAVE_A:INCDAT5ADD_SI:INCSI LOOP COMPARE RET GRADE ENDP MAIN ENDP CODE ENDS END START
习题六解答:6.9答:MOVSTR MACRO SOURCE,DEST,NLEA SI,DS:SOURCE LEA DI,ES:DESTMOV CX,NREP MOVSB ENDM 6.10答:CLRBUF MACRO N,BUFMOV CX,NMOV AL,‘’LEA DI,ES:BUFREP STOSB ENDM
6.11答:STR=‘STRING’REPT 10DB STR ENDM 6.12答:MOVE
MACRO X IFIDN ,MOV TERMINAL,0ELSE MOV TERMINAL,1ENDIF ENDM 6.13答:MOV AL,DAT1IFE SIGN MOV AH,0/CBWDIV DAT2ELSE CBW IDIV DAT2ENDIF MOV RESULT,AL
习题九解答:9.1答:接口是微机与外设的通道。基本功能是在系统总线和输入输出设备之间传输信号。9.3答:有端口统一编址和端口独立编制址。
9.5答:固定式和可选式。9.6答:选择芯片。9.9答:中断类型与它所对应的中断服务程序入口地址之间的换算表。9.12答:特征位D4=1,要初始化ICW4则D0=1,多片D1=0,电平触发D3=1,所以
ICW1=00011001B=19H。9.13答:IR3~IR0外部输入,则D3D2D1D0=0000;IR7~IR4从片接入,则D7D6D5D4=1111;所以ICW3=11110000B=0F0H。9.14答:分析:单片无需设置级联控制字ICW3;完全嵌套方式需要设置方式控制字ICW4;中断号为08H~0FH需要设置中断向量字ICW2。(1)特征位D4=1;要初始化ICW4则D0=1;单片D1=1;边沿触发D3=0;所以
ICW1=00010011B=13H;
(2)中断号为08H~0FH,所以ICW2=08H;(3)完全嵌套方式,D4=0;采用8086/8088系列机,D0=1;其他位为0,所以ICW4=01H。地址设定:20H,21H初始化程序:MOVAL,13HOUT 20H,ALMOV AL,08HOUT 21H,ALMOV AL,01HOUT 21H,AL9.15答:存储器和外设直接交换数据。
习题十解答:10.16答:计数器0(D7D6=00)方式3工作
(D3D2D1=011);6计数初值N=fi/fo=1MHz/40kHz=(1×10)/(40×103)=25;由于25<255,用低8位寄存器读写即可(D5D4=01),二进制计数(D0=0);所以控制字为:00010110B=16H,初始化程序如下:MOV AL,16HOUT 43H,ALMOV AL,25OUT 40H,AL10.17答:计数器0
(D7D6=00)分频器即为方式2工作(D3D2D1=010),计数初值N1;计数器2(D7D6=10)计数器即为方式0工作(D3D2D1=000),计数初值N2;由于初值为N1和N2,不确定大小,用18位寄存器读写即可(D5D4=11),二进制计数(D0=0)。所以控制字1为:00110100B=35H,所以控制字2为:10110000B=0B0H,初始化程序如下:MOV AL,34HMOV DX,293HOUT DX,ALMOV AL,N1MOV DX,290HOUT DX,ALMOV AL,0B0HMOV DX,293HOUT DX,ALMOV AL,N2M