文档视界 最新最全的文档下载
当前位置:文档视界 › 汇编语言与接口技术叶继华(第二版)习题答案

汇编语言与接口技术叶继华(第二版)习题答案

汇编语言与接口技术叶继华(第二版)习题答案
汇编语言与接口技术叶继华(第二版)习题答案

汇编语言与接口技术叶继华(第二版)习题答案

习题一解答: 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]补=10111 1.4[N]反=1.0101 [N]原=1.1010[N]补=1.0110N=-0.1010 1.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.110010764310 1.6(1)(11011011)2=(1×2+1×2+1×2+1×2+1×2+1×2)10=(219)10=(001000011001)BCD(2)

(456)10=(010*********)BCD210(3)(174)8=(1×8+7×8+4×

8)10=(124)10=(000100100100)BCD210(4)(2DA)16=(2×16+13×16+10×16)10=(730)10=(011100110000)BCD 1.7(1)9876H看成有符号数时,默认为负数的补码,转换为十进制数是:-265069876H=1001100001110110B为负数的补码,对其求补得到正数的补码,即[1001100001110110B]补

=0110011110001010B14131098731=(1×2+1×2+1×2+1×2+1×2 +1×2+1×2+1×2)10=26506所以原负数为-26506(2)9876H看成无符号数时,转换为十进制数是:3903015121165421

9876H=1001100001110110B=(1×2+1×2+1×2+1×2+1×2+1×2+1×2+1×2)10=39030 1.8(1)98的压缩BCD码为:10011000B(2)98的非压缩BCD码为:0000100100001000B 1.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附加段寄存器。存放当前程序所用辅助数据段的段基址。④指令指针寄存器IP16位的指令指针寄存器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=42200H 2.5答:8086CPU为了能够对存储器进行字节和字的访问,在技术上将1M字节的存储器空间分成两个

512K字节(219)的存储体。一个存储体中包含偶数地址,该存储体被称为偶存储体;另一个存储体中包含奇数地址,该存储体被称为奇存储体,两个存储体之间采用交叉编址方式,然后通过A0和BHE组合就可以确定对哪一组存储体进行访问,是对字节还是对字进行访问。 2.6答:在存储器中,对要存放的字,其低位字节可以从奇数地址开始存放,也可以从偶数地址中开始存放;如果从奇数地址开始存放称为非规则存放,按非规则存放的字称为字不对准存放。从偶数地址中开始存放称为规则存放,按规则存放的字称为字对准存放。使用字对准存放要在一个总线周期完成,用字不对准存放则需要两个总线周期才能完成。所以为了加快程序运行速度,编程时应尽可能使用字对准存放。习题三解答: 3.6答:(1)MOV(2)MOV(3)MOV(4)MOV CX,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=4500H 3.9答:(1)段内间接寻址(2)段内间接寻址(3)段间间接寻址

3.8答:(1)立即数寻址(2)直接寻址(3)寄存器间接寻址(4)基址变址寻址(5)相对基址变址寻址(6)寄存器寻址 3.10答:(1)直接寻址(2)寄存间接寻址(3)跨段寄存器间接寻址(4)跨段寄存器间接寻址(5)寄存器间接寻址(6)寄存器相对址寻址(7)基址变址寻址(8)相对基址变址寻址(9)寄存器间接寻址PA=10200H PA=10010H

PA=15010H PA=20010H PA=200A0H PA=10110H PA=10110H PA=10210H PA=10100H

3.12答:(1)AX=0100H(2)AX=1020H(3)AX=1020H(4)AX=5030H (5)AX=2010H(6)AX=2010H(7)AX=1020H 3.13答:(1)SI=0320H (2)BP=1320H(3)DI=0310H(4)X=0FFF0H

3.11答:(1)MOV AL,1234H(2)MOV CS,AX(3)MOV[1000], 1000H(4)MOV BYTE PTR[BX],1000H(5)PUSH AL(6)IN AX,[BX](7)SHL AX,5(8)XCHG DS,AX(9)XCHG[BX],[SI](10)DEC[SI](11)NEG1234H(12)MUL05H(13)DIV AX,BX(14)LEA AX,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))AX0000H0FFFFH0000H0000H0000H0EE00H0EE00H0F700H0FFB8H 0FFB7H0049H CF不影响不影响不影响0111011OF不影响0000 0不确定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)XOR AL,2AH(2)MOV BL,AL NOT BL TEST BL,2AH JE L1MOV AL,0...L1:MOV AL,1

AL BL BL高4BL低4↓AL低4AL高4

(3)MOV ROL ROL XCHG

CL,AL,BL,AL,

4CL CL BL

AL高4AL低4↓BL低4BL高4

(3)分析:AL和BL循环左移4位,然后互换。

(4)PUSHF POP AX(5)PUSHF POP AX AND AX,0FEFFH;设置TF=D8=0 PUSH AX POPF

D3D2

DX D1↓D2D0D1A3D0A2

AX A1↓A3A2A1A0

(6)MOV MOV 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)STD MOV MOV MOV MOV MOV REP

0100H AX,DS ES,AX SI,0163H DI,01B3H CX,100MOVSB

80个字节0150H

100个字节

0163H

100个字节

01B3H

(7)分析:如图所示只能是从高地址向低地址传送,且为同一个数据段。(8)MOV IMUL MOV MOV AL,BYTE PTR A BYTE PTR B BYTE PTR C,AL BYTE 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答:A01H02H 03H04H B31H32H33H34H C01H00H02H00H03H00H04H00H E34H12H 00H00H 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)=5678H 4.10答:DATA SEGMENT ARRAY EQU THIS WORD ARRAY DB100DUP(?)DATA ENDS 4.11答:(1)ARRAY(2)DARRAY(3)BCD(4)STR(5)DATA1DB12H,34H,56H, 0ABH DW1234H,5678H,0ABCDH DW1234DB‘STRING’SEGMENT DB12H,

34H,‘A’,‘B’,‘C’DW1234H,5678H,0ABCDH DB10DUP(?)DATA1 ENDS 4.12答:(1)POP STAK(2)LES SI,DVAR(3)MOV AX,TYPE VAR (4)MOV AX,OFFSET VSTR/LEA AX,VSTR 4.13答:(1)VAR DW5050/MOV WORD PTR VAR,5050 4.14答:(1)LEA BX,DAT1/MOV BX,OFFSET DAT1(2)MOV CL,BYTE PTR[DAT2+2](3)MOV BYTE PTR[BUF1+9],11H(4)LEN1=13,LEN2=7(5)MOV CX,DAT2-DAT1lEA SI,DAT1LEA DI,BUF2 MOV AX,DS MOV ES,AX CLD REP MOVSB123‘1’‘2’‘3’-34H

12H341212H00H--::--::BUF2BUF1DAT2DAT1

4.15答:LEA MOV MOV或者:

SI,STR DH,[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)=0D4H 5.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 DW100,200,150,6DUP(?);X DW 100;Y DW200;Z DW150DATA ENDS STACK SEGMENT STACK DW200DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AX,WORD PTR DAT MOV BX,WORD PTR[DAT+2] ADD AX,BX MOV BX,WORD PTR[DAT+3]SUB AX,BX MOV WORD PTR[DAT+6],AX MOV AH,4CH INT21H CODE ENDS END START 5.20答:DATA SEGMENT DAT1DB?DAT2DB?DAT3DB?DATA ENDS STACK SEGMENT STACK DB200 DUP(?)STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK START:MOV AX,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 INT21H CODE ENDS END START 5.21答:DATA SEGMENT DAT1DW‘A>B$’DAT2DW‘A

INT21H JMP EXIT AAB:MOV DX,OFFSET DAT1MOV AH,9INT21H EXIT:MOV AH,4CH INT21H CODE ENDS>

END START 5.26答:DATA SEGMENT TABLE DW A,B,C,D,E DATA ENDS STACK SEGMENT STACK DB100DUP(?)STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AH,

1INT21H 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:MOV AH,2INT21H

EXIT:MOV AH,4CH INT21H CODE ENDS END START 5.33DATA SEGMENT DAT1 DB DAT2DB DAT3DB DAT4DB DAT5DB00000

DAT DB76,69,59,85,98,85,75,100,86,95COUNT EQU($-DAT)/TYPE DAT DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX CALL GRADE MOV AH,4CH INT21H GRADE PROC MOV CX,COUNT MOV SI,0COMPARE:CMP DAT[SI],60JGE NEXT INC DAT1JMP

ADD_SI NEXT:CMP DAT[SI],69JBE SAVE_D CMP DAT[SI],79JBE SAVE_C CMP DAT[SI],89JBE SAVE_B CMP DAT[SI],100JBE SAVE_A JMP ADD_SI

SAVE_D:INC DAT2JMP ADD_SI SAVE_C:INC DAT3JMP ADD_SI SAVE_B:INC DAT4 JMP ADD_SI SAVE_A:INC DAT5ADD_SI:INC SI LOOP COMPARE RET GRADE ENDP MAIN ENDP CODE ENDS END START

习题六解答: 6.9答:MOVSTR MACRO SOURCE,DEST,N LEA SI,DS:SOURCE LEA DI,ES:DEST MOV CX,N REP MOVSB ENDM 6.10答:CLRBUF MACRO N,BUF MOV CX,N MOV AL,‘’LEA DI,ES:BUF REP STOSB ENDM

6.11答:STR=‘STRING’REPT10DB STR ENDM 6.12答:MOVE MACRO X IFIDN,MOV TERMINAL,0ELSE MOV TERMINAL,1ENDIF ENDM 6.13答:MOV AL,DAT1IFE SIGN MOV AH,0/CBW DIV DAT2ELSE CBW IDIV DAT2 ENDIF 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初始化程序:MOV AL,13H OUT20H,AL MOV AL,08H OUT21H,AL MOV AL,01H OUT21H,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,16H OUT43H,AL MOV AL,25OUT40H,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,34H MOV DX,293H OUT DX,AL MOV AL,N1MOV DX,290H OUT DX,AL MOV AL,0B0H MOV DX,293H OUT DX,AL MOV AL,N2M

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 ) 2.标号可以有两种类型属性.它们是( )和( ) 3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( ) 4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ). 5.循环程序通常由( )( )( )和循环结果外理四部分构成 6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT 7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( ) 8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( ) 9.分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量AYW( ) (2)双字变量AYD存放的地址指针送ES和SI( ) (3)变量AY2类型属性送AH( ) (4)不允许中断即关中断( ) (5)将字符串'HOW ARE YOU!'存入变量AYB( ) (6)子程序返回调用程序( ) (7)地址表达式AYY[4]的偏移地址送字变量ADDR( ) (8)AX的内容加1,要求不影响CF( ) (9)BX的内容加1,要求影响所有标志位( ) (10)若操作结果为零转向短号GOON( ) 二,单选题 1.IBM PC微机中,有符号数是用( )表示的 1.原码 2.补码 3.反码 4.BCD码 2.把汇编源程序变成代码程序的过程是( ) 1.编译 2.汇编 3.编辑 4.链接

汇编语言课后习题答案

2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执行完后AX寄存器的内容。 (1)mov ax,1200h (2)mov ax,bx (3)mov ax,[1200h] (4)mov ax,[bx] (5)mov ax,[bx+1100h] (6)mov ax,[bx+si] (7)mov ax,[bx][si+1100h] 〔解答〕 (1)AX=1200H (2)AX=0100H (3)AX=4C2AH;偏移地址=bx=0100h (4)AX=3412H;偏移地址=bx=0100h (5)AX=4C2AH;偏移地址=bx+1100h=1200h (6)AX=7856H;偏移地址=bx+si=0100h+0002h=0102h (7)AX=65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h 〔习题2.2〕指出下列指令的错误 (1)mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds (5)mov al,300 (6)mov[sp],ax (7)mov ax,bx+di

(8)mov20h,ah 〔解答〕 (1)两操作数类型不匹配 (2)IP指令指针禁止用户访问 (3)立即数不允许传给段寄存器 (4)段寄存器之间不允许传送 (5)两操作数类型不匹配 (6)目的操作数应为[SI] (7)源操作数应为[BX+DI] (8)立即数不能作目的操作数 〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push ax mov ax,0f79h push ax pop bx pop[bx] 〔解答〕 mov ax,8057h push ax mov ax,0f79h push ax pop bx;bx=0f79h pop[bx];DS:[0f79h]=8057h

《汇编语言与接口技术》答案习题解答(第三章)

解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 解:

.model small .stack .data bufX dw -7 signX db .code .startup cmp bufX,0 ;test bufX,80h jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h

编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ; .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 解: lucase proc push bx mov bx,offset string cmp al,0 je case0 cmp al,1

微机原理与汇编语言复习题及参考答案

微机原理与汇编语言复习题及参考答案 ——CSDN下载频道提供,请尊重原创 一、选择题: 1. 设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL中的值为() A. 51H B. A3H C. 47H D. 0C5H 2. 下述指令的执行结果是() MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3. 完成对CL寄存器的容乘以4的正确操作是() A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,2 ROL CL,1 SHL CL,1 SHL CL,CL 4. 无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指() A. ADD BH,01H B. OR BH,01H C. XOR BH,01H D. TEST BH,01H 5. 假设(AL)= 37H,(BL)= 95H,执行指令IMUL BL后(AX)= () A. 0E903H B. 2003H C. 0DBBH D. 2008H 6. 下面的数据传送指令中,错误的操作是() A. MOV SS:[BX+DI],1000H B. MOV DX,1000H C. MOV WORD PTR[BX],1000H D. MOV DS,2000H 7. CPU要访问的某一存储单元的实际地址称() A.段地址B.偏移地址C.物理地址D.逻辑地址 8. 某存储单元的物理地址是12345H,可以作为它的段地址有() A.2345H B.12345H C.12340H D.1234H 9. 计算机能直接识别的的语言() A.汇编语言 B.机器语言C.高级语言D.低级语言 10. 下列指令中操作数在代码段中的是() A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为()A.直接、立即、间接B.直接、间接、立即 C.立即、直接、间接D.不一定 12.若栈顶的物理地址是2010011,当执行完指令CALL AX后,栈顶的物理地址是()A.2010211 B.2010111 C.200FFH D.200FEH 13.当执行完下列指令序列后,标志位CF和OF的值是() MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14. JMP BX的目标地址偏移量是(D)。 A.SI的容B.SI所指向的存字单元之容 C.IP+SI的容D.IP+[SI] 15.指令MOV AX,10[BX]的源操作数的寻址方式是() A.基址寻址B.寄存器寻址MOV AX,BX C.变址寻址AX【BX+DI】(只能用BX,BP;SI和DI) D.寄存器相对寻址 16.指出下列哪个数据在汇编语言中是非法的。()

汇编语言课后习题解答

第1章基础知识 检测点1.1(第9页) (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。 (2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。 (3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。 (4)1GB是1073741824(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。

(1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU 最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。 (8)在存储器中指令和数据没有任何区别,都是二进制信息。

汇编程序及接口技术实验报告

微机汇编程序及接口技术实验报告 汇编程序实验: 一、实验目的 1、熟悉汇编程序调试过程 2、掌握算术运算指令运用 3、掌握分支程序的编程和调试方法 二、实验设备 80X86微型计算机 三、实验内容 1、编程并调试显示“Hello Word!”字符串的汇编程序 TITLE HELLO DA TA SEGMENT STR DB'Hello World!$' DA TA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET STR MOV AH,9H INT 21H MOV AH,4CH INT 21H CODE ENDS END START

2、A、B、C、D、W是互不相等的在数据段中定义的16位有符号数,并假设加减运算不产生溢出。编写一个完整段定义的汇编语言程序,计算W=(A+B)×(C—D)。 title asmprogram1_1 DA TA SEGMENT A DW 1H B DW 3H C DW 4H D DW 2H W DW 2 DUP(?) DA TA ENDS ; CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV AX,A ADD AX,B MOV BX,C SUB BX,D IMUL BX MOV W,AX MOV W+2,DX MOV AH,4CH INT 21H CODE ENDS END START

3、设X、Y为在数据段中定义的有符号字变量。编写一个完整段定义的汇编语言程序(包含必要的伪指令,给出必要的注释)完成以下操作:若0

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B )。 A. 汇编程序 B. 连接程序 C. 机器语言程序 D.源代码程序 2. 在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 (C )。 A..SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 3. 为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D. 段地址 4. MOV AX, 3064H,该指令中源操作数采用的寻址方式是(A )。 A.立即 B. 直接 C. 寄存器相对 D. 寄存器间接 5. 换码指令的助记符是(C )。 A. XCHG B. LEAS C.XLAT D. MOV 6. 如果A> B (A、B有符号数)发生转移,应选择的条件转移指令是(JGE )。 7. 下列符号中,可用作标识符的是(C )。 A.MOV B.AX C.MSG1 D.1ABC 8. X DB 10H DUP (1 , 2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9. 当DF=0时,执行串操作指令MOVSB变址寄存器SI、DI的值将(C )。 A.不变 B. 减1 C. 加1 D. 无法确定 10. 如下指令可将AX寄存器内容改变的是(A )。 A. AND AX , BX B . TEST AX , BX C. CMP AX , BX D . XCHG AX , AX 11.16位CPU支持的I/O 地址范围是(D )。 A. 0~0FFFFFH B. 0~0FFFFH C. 0~0FFFH D. 0~0FFH 12. MUL CL指令实现的功能是(A )。 A.无符号乘法:AX AL X CL B.有符号乘法:AX AL X CL C.无符号乘法:DX AL X CL D .有符号乘法:DX AL X CL 13. DOS系统功能调用(INT 21H )中,显示字符串的功能号是(D )。 A.01H B.02H C.08H D. 09H 14. 在16位CPU读取指令时,需要用到的寄存器对是(C )。 A.SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 15. 下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B )。 A.MOV AX,23H B. MOV AX,[BX+SI] C.SUB AX,[BX] D. ADD AX,BX 16. 有内存变量定义语句:VAR DW 10 DUP(1 , 2), 1234H, VAR的属性TYPE LENGTH和

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

《汇编语言与接口技术》期末考试试题及答案

第一学期期末考试 汇编语言与接口技术 试卷A 卷 考试方式:闭卷 考试时间:120分钟 卷面总分:100分 一、选择题(本题共20小题,每题2分,共40分) 1. 汇编源程序的后缀名是 ( C ) A 、exe B 、.obj C 、.asm D 、.lib 2. 作为8位有符号数补码,80H 的真值是 ( C ) A 、0 B 、-2 C 、-128 D 、128 3. 8086 CPU 内部能够记录代码段段地址的寄存器是 ( D ) A 、DS B 、IP C 、CX D 、CS 4. 若(AX)=35F0H ,(CX)=00B8H ,当AND AX ,CX 指令执行后,AX 寄存器的值为 ( B ) A 、 1400H B 、 00B0H C 、 0000H D 、 0FFFFH 5. 若(SP)=1000H ,则执行指令PUSH AX 后SP 的值为 ( B ) A 、0FFFH B 、0FFEH C 、1002H D 、1001H 6. Mul BX 指令隐藏操作数的寄存器是 ( D ) A 、BX B 、CX C 、SI D 、AX

7.能够将AL中的1、3、5位取反的指令是 ( C ) A、AND AL , 2AH B、OR AL , 2AH C、XOR AL , 2AH D、TEST AL , 2AH 8.循环指令LOOP结束循环的条件是 ( D ) A、CX≠0 B、ZF=0 C、IF=0 D、CX=0 9.除法指令DIV BL中,被除数在寄存器 ( A ) A、AX B、DX C、DX:AX D、BX 10.输出单个字符的2号DOS功能调用的入口参数是 ( C ) A、AH B、AL C、DL D、DH 11.以下对伪指令的描述正确的是 ( D ) A、伪指令没有操作数 B、伪指令没有目标代码 C、汇编程序中伪指令可有可无 D、伪指令不会被执行 12.某伪指令X=12H中所定义的X是 ( B ) A、变量 B、常量 C、标号 D、段名 13.下面指令序列执行后完成的运算,正确的算术表达式应是( D ) MOV AL,BYTE PTR X SHL AL,1 DEC AL MOV BYTE PTR Y,AL A、Y=X*2+1 B、X=Y*2+1 C、X=Y*2-1 D、Y=X*2-1 14.下面指令结束后目标操作数不变化的是 (D ) A、INC BX B、SUB AX,BX

完整版汇编语言试题及答案..doc

一,单项选择题 (每小题 1 分,共 20 分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令 JMP FAR PTR DONE 属于 ( C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是 ( A.对两个无符号数进行比较采用CMP 指令 ,对两个有符号数比较用CMP S 指令 B.对两个无符号数进行比较采用CMPS 指令 ,对两个有符号数比较用CM P 指令 C.对无符号数条件转移采用JAE/JNB 指令 ,对有符号数条件转移用JGE/J NL 指令 D.对无符号数条件转移采用JGE/JNL 指令 ,对有符号数条件转移用JAE/J NB 指令 3.一个有 128 个字的数据区 ,它的起始地址为 12ABH:00ABH, 请给出这个数据区最末一个字单元的物理地址是 ( A.12CSBH B.12B6BH

C.12C59H D.12BFEH 4.在下列指令的表示中 ,不正确的是 ( A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是 ( A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令 JNE 的测试条件为 ( A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为 ( A.BX 或 CX

汇编语言课后习题答案___郑晓薇(整理后的)

习题一 1 无符号数: 11010011=211=D3H,01110111=119=77H, 10000011=131=83H, 00101111=47=2FH, 10101010=170=AAH 带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H, 00101111=+47=2FH,10101010= -86=AAH 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=01010010=5 2H=82 01001001+11101000=00110001=3 1H=49 10111110+01010010=00010000=1 0H=16 10011010+11110001=10001011=8 BH= -117 4 00101001+01010011=01111100+0 0000110=10000010=82H=82 01110011-00100100=01001111-00000110=01001001=49H=49 01100110+00011000=01111110+0 0000110=10000100=84H=84 0000000100110010+01110101=00 00000110100111+00000110 =0000001000000111=0207H=207 5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H 6 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码 (2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255 (3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码 (4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码 8 (1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H (3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H (4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD 码0000001001010100,ASCII码323534H 9 (1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0 (2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0 (3) -74+29=11010011B,CF=0, SF=1,ZF=0,OF=0 (4) -92-37=01111111B,CF=1, SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。 12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。 13 首单元的物理地址=38AE8H,末单元的物理地址 =38AE8H+7FFFH=40AE7H

位微机原理汇编语言及接口技术教程课后习题答案

《16/32位微机原理、汇编语言及接口技术教程》 部分习题参考解答 第1章微型计算机系统概述 〔习题〕 什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统? 〔解答〕 通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。 单片机:是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。 DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。 嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。 〔习题〕 说明微型计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。 存储器:存储器是存放程序和数据的部件。 外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。 总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。

〔习题〕 什么是总线?微机总线通常有哪3组信号?各组信号的作用是什么? 〔解答〕 总线:传递信息的共用通道,物理上是一组公用导线。 3组信号线:数据总线、地址总线和控制总线。 (1)地址总线:传输将要访问的主存单元或I/O端口的地址信息。 (2)数据总线:传输读写操作的数据信息。 (3)控制总线:协调系统中各部件的操作。 〔习题〕 简答如下概念: (1)计算机字长 (2)取指-译码-执行周期 (3)ROM-BIOS (4)中断 (5)ISA总线 〔解答〕 (1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。 (2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。 (3)ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。 (4)中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。 (5)ISA总线是指IBM PC/AT机上使用的系统总线。 〔习题〕 下列十六进制数表示无符号整数,请转换为十进制形式的真值: (1)FFH (2)0H (3)5EH (4)EFH 〔解答〕 (1)255 (2)0 (3)94 (4)239

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

汇编语言试题及答案.

一,单项选择题(每小题1分,共20分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令JMP FAR PTR DONE属于( C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是( A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP S指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM P指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是( A.12CSBH B.12B6BH

C.12C59H D.12BFEH 4.在下列指令的表示中,不正确的是( A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是( A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为( A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为( A.BX或CX

B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节 D.附加段中偏移量为3236H的字节 9.执行如下程序:( MOV AX,0 MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A HLT 执行后(BX=( A.99

汇编语言课后习题答案郑晓薇后的

汇编语言课后习题答案郑 晓薇后的 Modified by JEEP on December 26th, 2020.

习题一1 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=0101001 0=52H=82 4 5000020A3H,FF94H,00003456H,007FH, FFFFEC00H 6无符号数:0~65535,0000H~FFFFH;带符号数:-32768~ +32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII 码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8 (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H 9 (1) 56+63=01110111B, CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0, SF=0,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。

汇编语言试题及答案(1)

一,单项选择题(每小题1分,共20分) 1.指令JMP FAR PTR DONE属于() A.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.下列叙述正确的是() A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP S指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM P指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是() A.12C5BH B.12B6BH C.12C5AH D.12BFEH 4.在下列指令的表示中,不正确的是() A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是() A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为() A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为()A.BX或CX B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节

汇编语言程序设计习题答案

第一章. 习题 1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001B=171H (2) 10000=10 0111 0001 0000B=2710H (3) 4095=1111 1111 1111B=FFFH (4) 32767=111 1111 1111 1111B=7FFFH 1.2将下列二进制数转换为十六进制数和十进制数: (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45 (2) 1000 0000B=80H=128 (3) 1111 1111 1111 1111B=FFFFH=65535 (4) 1111 1111B=FFH=255 1.3将下列十六进制数转换为二进制数和十进制数: (1) FA (2) 5B (3) FFFE (4) 1234 答:(1) FAH=1111 1010B=250 (2) 5BH=101 1011B=91 (3) FFFEH=1111 1111 1111 1110B=65534 (4) 1234H=1 0010 0011 0100B=4660 1.4完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F 答:(1) 3A+B7H=F1H=241 (2) 1234+AFH=12E3H=4835 (3) ABCD-FEH=AACFH=43727 (4) 7AB×6FH=35325H=217893 1.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其 运算结果。 (1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76) 答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0 (2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0 (3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0; OF=0 (4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H; CF=0;OF=1 (5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH; CF=0;OF=1 (6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H; CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的 带符号数或无符号数时,它们所表示的十进制数是什么?

相关文档
相关文档 最新文档