当前位置:文档之家› 汇编语言第七章答案

汇编语言第七章答案

汇编语言第七章答案
汇编语言第七章答案

7.1 编写一条宏指令CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。

答:宏定义如下:

CLRB MACRO N, CFIL

MOV CX, N

CLD

MOV AL, ‘ ’ ;;取空格符的ASCII码

LEA DI, CFIL

REP STOSB

ENDM

7.2 某工厂计算周工资的方法是每小时的工资率RA TE乘以工作时间HOUR,另外每工作满10小时加奖金3元,工资总数存放在W AG中。请将周工资的计算编写成一条宏指令WAGES,并展开宏调用:

WAGES R1, 42, SUM

答:宏定义如下:

WAGES MACRO RA TE, HOUR, WAG

MOV AL, HOUR ;;计算周工资(W AG),公式为:HOUR* RA TE

MOV BL, RA TE

MUL BL

MOV WAG, AX

MOV AL, HOUR ;;计算奖金存入(AX),公式为:HOUR/10的商*3

MOV AH, 0

MOV BL, 10

DIV BL

MOV BL, 3

MUL BL

ADD WAG, AX ;;计算周工资总数

ENDM

宏调用:

WAGES R1, 42, SUM

宏展开:

1 MOV AL, 42

1 MOV BL, R1

1 MUL BL

1 MOV SUM, AX

1 MOV AL, 42

1 MOV AH, 0

1 MOV BL, 10

1 DIV BL

1 MOV BL, 3

1 MUL BL

1 ADD SUM, AX

7.3 给定宏定义如下:(注意:此宏指令的功能是V3←|V1-V2|)

DIF MACRO X, Y

SUB AX, Y

ENDM

ABSDIF MACRO V1, V2, V3

LOCAL CONT

PUSH AX

DIF V1, V2

CMP AX, 0

JGE CONT

NEG AX

CONT: MOV V3, AX

POP AX

ENDM

试展开以下调用,并判定调用是否有效。

(1) ABSDIF P1, P2, DISTANCE

(2) ABSDIF [BX], [SI], X[DI], CX

(3) ABSDIF [BX][SI], X[BX][SI], 240H

(4) ABSDIF AX, AX, AX

答:(1) 宏调用ABSDIF P1, P2, DISTANCE 的宏展开如下:此宏调用有效。

1 PUSH AX

1 DIF P1, P2

1 MOV AX, P1

1 SUB AX, P2

1 CMP AX, 0

1 JGE ??0000

1 NEG AX

1 ??0000: MOV DISTANCE, AX

1 POP AX

(2) 宏调用ABSDIF [BX], [SI], X[DI], CX 的宏展开如下:此宏调用有效。

1 PUSH AX

1 DIF [BX], [SI]

1 MOV AX, [BX]

1 SUB AX, [SI]

1 CMP AX, 0

1 JGE ??0001

1 NEG AX

1 ??0001: MOV X[DI], AX

1 POP AX

(3) 宏调用ABSDIF [BX][SI], X[BX][SI], 240H 的宏展开如下:此宏调用无效。

1 PUSH AX

1 DIF [BX][SI], X[BX][SI]

1 MOV AX, [BX][SI]

1 SUB AX, X[BX][SI]

1 CMP AX, 0

1 NEG AX

1 ??0002: MOV 240H, AX

1 POP AX

(4) 宏调用ABSDIF AX, AX, AX 的宏展开如下:此宏调用有效但无多大意义。

1 PUSH AX

1 DIF AX, AX

1 MOV AX, AX

1 SUB AX, AX

1 CMP AX, 0

1 JGE ??0003

1 NEG AX

1 ??0003: MOV AX, AX

1 POP AX

7.4 试编制宏定义,要求把存储器中的一个用EOT(ASCII码04H)字符结尾的字符串传送到另一个存储区去。

答:宏定义如下:

SEND MACRO SCHARS, DCHARS

LOCAL NEXT, EXIT

PUSH AX

PUSH SI

MOV SI, 0

NEXT: MOV AL, SCHARS[SI]

MOV DCHARS[SI], AL

CMP AL, 04H ;;是EOT字符吗?

JZ EXIT

INC SI

JMP NEXT

EXIT: POP SI

POP AX

ENDM

7.5 宏指令BIN_SUB完成多个字节数据连减的功能:

RESULT←(A-B-C-D-…)

要相减的字节数据顺序存放在首地址为OPERAND的数据区中,减数的个数存放在COUNT 单元中,最后结果存入RESULT单元。请编写此宏指令。

答:宏定义如下:

BIN_SUB MACRO RESULT, A, OPERAND, COUNT

LOCAL NEXT_SUB

PUSH CX

PUSH BX

PUSH AX

MOV CX, COUNT

MOV AL, A

LEA BX, OPERAND

CLC

NEXT_SUB: SBB AL, [BX]

INC BX

LOOP NEXT_SUB

MOV RESULT, AL

POP AX

POP BX

POP CX

ENDM

7.6 请用宏指令定义一个可显示字符串GOOD: ‘GOOD STUDENTS: CLASSX NAME’,其中X和NAME在宏调用时给出。

答:宏定义如下:

DISP_GOOD MACRO X, NAME

GOOD DB ‘GOOD STUDENTS: CLASS&X &NAME’, 0DH, 0AH, ‘$’

ENDM

7.7 下面的宏指令CNT和INC1完成相继字存储。

CNT MACRO A, B

A&B DW ?

ENDM

INC1 MACRO A, B

CNT A, %B

B=B+1

ENDM

请展开下列宏调用:

C=0

INC1 DA TA, C

INC1 DA TA, C

答:宏展开如下:

C=0

INC1 DA TA, C

1 DA TA0 DW ?

INC1 DA TA, C

1 DA TA0 DW ? (注意:C为0没有变)

7.8 定义宏指令并展开宏调用。宏指令JOE把一串信息‘MESSAGE NO. K’存入数据存储区XK中。宏调用为:

I=0

JOE TEXT, I

JOE TEXT, I

JOE TEXT, I

答:宏定义如下:

MARY MACRO X, K

X&K DB ‘MESSAGE NO. &K’

ENDM

JOE MACRO A, I

MARY A, %I

I=I+1

ENDM

宏调用和宏展开:

I=0

JOE TEXT, I

1 TEXT0 DB ‘MESSAGE NO. 0’

JOE TEXT, I

1 TEXT1 DB ‘MESSAGE NO. 1’

JOE TEXT, I

1 TEXT

2 DB ‘MESSAGE NO. 2’

7.9 宏指令STORE定义如下:

STORE MACRO X, N

MOV X+I, I

I=I+1

IF I-N

STORE X, N

ENDIF

ENDM

试展开下列宏调用:

I=0

STORE TAB, 7

答:宏展开如下:

I=0

STORE TAB, 7

1 MOV TAB+0, 0

1 MOV TAB+1, 1

1 MOV TAB+2, 2

1 MOV TAB+3, 3

1 MOV TAB+4, 4

1 MOV TAB+5, 5

1 MOV TAB+6, 6

7.10 试编写非递归的宏指令,使其完成的工作与7.9题的STORE相同。答:宏定义如下:

STORE MACRO K

MOV TAB+K, K

ENDM

宏调用:

I=0

REPT 7

STORE %I

I=I+1

ENDM

7.11 试编写一段程序完成以下功能,如给定名为X的字符串长度大于5时,下列指令将汇编10次。

ADD AX, AX

答:程序段如下:

X DB ‘ABCDEFG’

IF ($-X) GT 5

REPT 10

ADD AX, AX

ENDM

ENDIF

7.12 定义宏指令FINSUM:比较两个数X和Y(X、Y为数,而不是地址),若X>Y则执行SUM←X+2*Y;否则执行SUM←2*X+Y。

答:宏定义如下:

CALCULA TE MACRO A, B, RESULT ;;计算RESULT←2*A+B

MOV AX, A

SHL AX, 1

ADD AX, B

MOV RESULT, AX

ENDM

FINSUM MACRO X, Y, SUM

IF X GT Y

CALCULA TE Y, X, SUM

ELSE

CALCULA TE X, Y, SUM

ENDIF

ENDM

7.13 试编写一段程序完成以下功能:如变元X=‘VT55’,则汇编MOV TERMINAL, 0;否则汇编

MOV TERMINAL, 1。

答:宏定义如下:

BRANCH MACRO X

IFIDN ,

MOV TERMINAL, 0

ELSE

MOV TERMINAL, 1

ENDIF

ENDM

7.14 对于DOS功能调用,所有的功能调用都需要在AH寄存器中存放功能码,而其中有一些功能需要在DX中放一个值。试定义宏指令DOS21,要求只有在程序中定义了缓冲区时,汇编为:

MOV AH, DOSFUNC

MOV DX, OFFSET BUFF

INT 21H

否则,无MOV DX, OFFSET BUFF指令。并展开以下宏调用:

DOS21 01

DOS21 0AH, IPFIELD

答:宏定义如下:

DOS21 MACRO DOSFUNC, BUFF

MOV AH, DOSFUNC

IFDEF BUFF

MOV DX, OFFSET BUFF

ENDIF

INT 21H

ENDM

宏展开:

DOS21 01

1 MOV AH, 01

1 INT 21H

DOS21 0AH, IPFIELD

1 MOV AH, 0AH

1 MOV DX, OFFSET IPFIELD

1 INT 21H

7.15 编写一段程序,使汇编程序根据SIGN中的内容分别产生不同的指令。如果(SIGN)=0,则用字节变量DIVD中的无符号数除以字节变量SCALE;如果(SIGN)=1,则用字节变量DIVD中的带符号数除以字节变量SCALE,结果都存放在字节变量RESULT中。

答:程序段如下:

MOV AL, DIVD

IF SIGN

MOV AH, 0

DIV SCALE

ELSE

CBW

IDIV SCALE

ENDIF

MOV RESULT, AL

7.16 试编写宏定义SUMMING,要求求出双字数组中所有元素之和,并把结果保存下来。该宏定义的哑元应为数组首址ARRAY,数组长度COUNT和结果存放单元RESULT。

答:宏定义如下:

SUMMING MACRO ARRAY,COUNT,RESULT

LOCAL ADDITION

MOV ESI, 0

MOV ECX, COUNT

ADDITION: MOV EAX, ARRAY[ESI*4] ;;双字为4字节

ADD RESULT, EAX

ADC RESULT+4, 0 ;;将进位加到结果的高位双字中

INC ESI

LOOP ADDITION

ENDM

7.17 为下列数据段中的数组编制一程序,调用题7.16的宏定义SUMMING,求出该数组中各元素之和。

DA TA DD 101246,274365,843250,475536

SUM DQ ?

答:程序如下:

SUMMING MACRO ARRAY,COUNT,RESULT

LOCAL ADDITION

MOV ESI, 0

MOV ECX, COUNT

ADDITION: MOV EAX, ARRAY[ESI*4] ;;双字为4字节

ADD RESULT, EAX

ADC RESULT+4, 0 ;;将进位加到结果的高位双字中

INC ESI

LOOP ADDITION

ENDM

.MODEL SMALL

.386

.DA TA

DA TA DD 101246,274365,843250,475536

SUM DQ ?

.CODE

START:MOV AX, @DA TA

MOV DS, AX

SUMMING DA TA, 4, SUM

MOV AX, 4C00H

INT 21H

END START

7.18 如把题7.16中的宏定义存放在一个宏库中,则题7.17的程序应如何修改?

答:程序修改如下:

INCLUDE MACRO.MAC ;假设存放的宏库名为MACRO.MAC

.MODEL SMALL

.386

.DA TA

DA TA DD 101246,274365,843250,475536

SUM DQ ?

.CODE

START:MOV AX, @DA TA

MOV DS, AX

SUMMING DA TA, 4, SUM

MOV AX, 4C00H

INT 21H END START

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 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.链接

微机系统与汇编语言实验报告

《微机系统与汇编语言实验报告》 8086汇编语言实验项目一(数值筛选) 1.实验目的: 进一步熟悉8086指令系统,运用并掌握汇编语言程序设计基本方法,编制能满足题目要求的数据处理类小规模程序。并通过使用EDIT、MASM、LINK等软件工具,熟悉汇编语言程序书写、输入、编译、连接生成可执行程序的全过程。进一步提高汇编语言程序调试和结果查找的能力。 2.基本要求: 应用8086汇编语言程序设计方法,编制一个程序,使它能对10个字节型有符号常数作如下处理: 1.在这10个常数中筛选出所有奇数,并存放到ODD开始的内存单元中; 2.在这10个常数中筛选出所有偶数,并存放到EVE开始的内存单元中; 3.对所筛选出的奇数、偶数分别求和,求和结果分别存放到每组数的结尾。 掌握用EDIT输入和保存8086汇编语言源程序、用MASM编译、用LINK连接生成可执行程序(EXE文件),并采用DEBUG调试运行自编程序,观察并记录程序运行的结果。 3.实验原理与方法: 1.实验原理 本实验项目需要运用8086汇编语言程序设计方法,而不是单纯地用DEBUG输入汇编语言指令来解决问题。 为了满足本实验的基本要求,程序中需要用到8086伪指令来定义数据区,用定义地址标识符伪指令来定义三个内存变量ORITAB、ODD、EVE,其长度都为10个字节。这就建立了原始数据存储区、奇数结果存储区和偶数结果存储区。在操作三个存储区前,通过“OFFSET<变量名>”运算,就能获取这三个存储区的首地址。 设置两个地址指针SI、DI,一个指向EVE存储区单元地址,另一个指向ODD存储区单元地址。当找到符合偶数条件的数据时,就用SI在传送指令中对目的操作数形成“寄存器间接寻址方式”,把偶数传送到SI所指向的单元;当找到符合奇数条件的数据时,就用DI 在传送指令中对目的操作数形成“寄存器间接寻址方式”,把奇数传送到DI所指向的单元。 设置两个求和寄存器DH、DL,当找到奇数时,把它加到DH求和;当找到偶数时,把它加到DL求和。 为了在10个原始数据中筛选出2种数据(奇数、偶数),需要对10个原始数据进行扫描,即,设置一个循环LOOP来对10个原始数据逐一分析。用TEST指令来测试每个原始数据的最低位,可分析出该数据的奇偶性。 4.实验操作题目:

最新有答案---14-15-1-汇编语言复习资料

汇编语言复习资料 第一部分选择题 第一章基础知识 1.数组array在数据段的定义如下所示,在内存空间的存储值是什么,选出正确的一 项(B ) array db 1,‘1’,0AH,‘A’,-2 A、1H 1H 0AH 0AH 82h B、1H 31H 0AH 41H FEH C、1 1 0A 0A 12h D、31H 31H 41H 41H 02h 2.debug命令中显示内存单元内容的命令是( B ) A、a B、d C、e D、r 3.debug命令中反汇编命令是(D ) A、q B、g C、t D、u 4.在DEBUG下,修改寄存器AX的命令是___B_。 A.U AX B.R AX C.R D.A AX 5.从200H开始反汇编的DEBUG命令是A____。 A.U 200 B.R 200 C.D 200 D.U 6.仅查看用户程序中数据段10号存储单元的DEBUG命令是A____。 A.D DS:A A B.D DS:A C.D DS:10 10 D.D DS:10 7.计算机编程语言的发展顺序是(A ) A、机器语言汇编语言高级语言 B、汇编语言机器语言高级语言 C、高级语言汇编语言机器语言 D、高级语言机器语言汇编语言 8.将124转换成十六进制数的结果是_A____。 A.7CH B.7DH C.7EH D.7BH 9.计算机对字符、符号采用统一的二进制编码。其编码采用的是_C_____。 A.BCD码B.二进制码C.ASCII D.十六进制码 第二章80x86计算机组织 10.对汇编语言源程序进行翻译的程序是__B___。 A.连接程序B.汇编程序C.编译程序D.目标程序 11.在汇编语言中,能够翻译成二进制代码的指令是__A__。 A.汇编指令B.伪指令C.机器指令D.宏指令

汇编语言知识大全

第一章基础知识: 一.机器码:1.计算机只认识0,1两种状态。而机器码只能由0,1组成。故机器码相当难认,故产生了汇编语言。 2.其中汇编由三类指令形成:汇编指令(有机器码对应),伪指令,其他符号(编译的时候有用)。 每一总CPU都有自己的指令集;注意学习的侧重点。 二.存储器:1.存储单元中数据和指令没任何差别。 2.存储单元:Eg:128个储存单元(0~127)128byte。 线: 1.地址总线:寻址用,参数(宽度)为N根,则可以寻到2^N个内存单元。 据总线:传送数据用,参数为N根,一次可以传送N/8个存储单元。 3.控制总线:cpu对元器件的控制能力。越多控制力越强。 四.内存地址空间:1.由地址总线决定大小。 2.主板:cpu和核心器件(或接口卡)用地址总线,数据总线,控制总 线连接起来。 3.接口卡:由于cpu不能直接控制外设,需通过接口卡间接控制。

4.各类存储器芯片:RAM,BIOS(主板,各芯片)的ROM,接卡槽的 RAM CPU在操控他们的时候,把他们都当作内存来对待,把他们总的看作一个由 若干个存储单元组成的逻辑存储器,即我们所说的内存地址空间。 自己的一点理解:CPU对内存的操作是一样的,但是在cpu,内存,芯片之间的硬件本身所牵扯的线是不同的。所以一些地址的功能是对应一些芯片的。 第二章寄存器 引入:CPU中含有运算器,寄存器,控制器(由内部总线连接)。而寄存器是可以用来指令读写的部件。8086有14个寄存器(都是16位,2个存储空间)。 一.通用寄存器(ax,bx,cx,dx),16位,可以分为高低位 注意1.范围:16位的2^16-1,8位的2^8-1 2.进行数据传送或运算时要注意位数对应,否则会报错 二.字:1. 1个字==2个字节。 2. 在寄存器中的存储:0x高位字节低位字节;单元认定的是低单元 数制,16进制h,2进制b

汇编语言课后习题答案

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

微机原理与汇编语言教学大纲

《微机原理与汇编语言》课程教学大纲一、课程基本信息 二、教学目标和要求 本课程是计算机专业的专业主干课。课程以当今主流微处理器80X86为结合点,分析它的结构特点、操作原理、指令系统以及汇编语言设计的基本方法,为后续课程打下必要的基础。通过本课程的学习,要求学生掌握微型计算机的基本

工作原理、汇编语言程序设计基本方法、微型计算机接口技术、建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力。应能掌握计算机的基本工作原理及汇编语言编程的技能和技巧,养成良好的程序设计风格,为今后的工作打下必要的技术基础。 三、教学难点 重点是8086CPU内部结构,引腿信号及功能,指令系统;汇编语言程序设计;接口的基本技术,接口芯片的内部结构和工作原理。难点是CPU操作时序,各种接口芯片的控制字,模式字的设置及其含义,接口与外设子系统的硬件设计及软件编程。 四、教学内容及基本要求 第一章微型机算计概述 (2学时) 教学目标和要求:理解微型机的分类和发展概况;掌握微处理器、微型计算机和微型机系统的差别;掌握CPU的功能和组成部件;掌握计算机的基本结构。 教学重点和难点:无。 教学方式:(课堂讲授) 第一节微型计算机的特点和发展 一、微型计算机的特点 二、微型计算机的发展 第二节微型机的分类 一、微型计算机的分类 第三节微处理器、微型计算机和微型计算机系统 一、微处理器 二、微型计算机 三、微型计算机系统 第四节微型机算机的应用 一、微型计算机的应用 复习思考题: 1. 微处理器、微型计算机和微型计算机系统之间有什么不同?

2. 微型计算机采用总线结构有什么优点? 3. 数据总线和地址总线在结构上有什么不同之处? 第二章 16位和32位微处理器 ( 6学时 ) 教学目标和要求: 1、掌握:8086微处理器的编程结构,常用引腿信号的功能,8086的中断系统,总线操作及时序; 2、理解:80386的体系结构,三种工作方式,指令流水线和地址流水线,虚拟存储机制和片内两级存储管理;Pentium采用的先进技术,原理结构,技术发展。 教学重点和难点:8086微处理器的结构,内部寄存器的功能,主要的引脚信号及功能,中断响应过程,存储器组织和I/O组织。 教学方式:(课堂讲授6学时) 第一节 16位微处理器8086 (2学时 ) 一、8086的编程结构 总线接口部件和执行部件的组成及各自功能,8086总线周期的概念。 二、8086的引腿信号和工作模式 1. 最小模式和最大模式的概念 为了适应各种应用场合,在设计8086/8088CPU芯片时,使它们可以在两种模式下工作,及最小模式和最大模式。 2. 8086/8088的引腿信号和功能 8086/8088CPU有40条引腿,这里介绍在两种模式下公用的32条引腿和他们的传递方向及有效跳变。 3. 最小模式 讲述8086在最小模式下的典型配置及有关引腿信号。 4. 最大模式 讲述8086在最大模式下的典型配置及有关引腿信号。 三、8086的操作和时序 1. 系统复位和启动操作 8086/8088复位时各内部寄存器的值,复位时序,总线信号状态。

汇编语言王爽第二版课后答案

第一章基础知识 检测点(第8页) ---------------------- (1) 13 (2) 1024,0,1023 (3) 8192,1024 (4) 2^30,2^20,2^10 (5) 64,1,16,4 (6) 1,1,2,2,4 (7) 512,256 (8) 二进制 注意: 1.第4题中的符号'^'指求幂运算(如: 2^30指2的30次方) 第二章寄存器(CPU工作原理) 检测点(第18页) ---------------------- (1)写出每条汇编指令执行后相关寄存器中的值。第一空:F4A3H 第二空:31A3H 第三空:3123H 第四空:6246H 第五空:826CH 第六空:6246H 第七空:826CH 第八空:04D8H 第九空:0482H 第十空:6C82H 第十一空:D882H 第十二空:D888H 第十三空:D810H 第十四空:6246H (2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 解答如下: mov ax,2 add ax,ax add ax,ax add ax,ax 检测点(第23页) ---------------------- (1)00010H,1000FH (2)1001H,2000H 第2题说明: 因为段的起始地址要为16的倍数。所以当段地址小于1001H或大于2000H时CPU都无法寻到。 检测点(第33页) ----------------------答:CPU修改了4次IP的值。 情况如下: 第1次:执行完mov ax,bx后 第2次:执行完sub ax,ax后 第3次:读入jmp ax后 第4次:执行完jmp ax后 最后IP的值为0 实验1 查看CPU和内存,用机器指令和汇编指令编程(第33页) ----------------------------------------------------- 1.预备知识:Debug的使用 <此部分略> 2.实验任务(第43页) (1) <此部分略> (2) <此部分略> (3) 通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。此生产日期不能被改变,因为其具有‘只读’属性。 (4) 通过向内存中的显存写入数据,使计算机根据写入的数据进行ASCII转换,并将转换后且可打印的字符输出到屏幕上。<注:关于显存的详细讨论不在此题范围> 第三章寄存器(内存访问) 检测点(第52页) ---------------------- (1)(题目:略) 第一空:2662H 第二空:E626H 第三空:E626H 第四空:2662H 第五空:D6E6H 第六空:FD48H 第七空:2C14H 第八空:0000H 第九空:00E6H 第十空:0000H 第十一空:0026H 第十二空:000CH 提示:此题可在DEBUG中利用E命令在本机上按照题目中所给出的内存单元及其数据进行相应地修改,然后再用A命令进行写入(题目中所给出的)相应的汇编指令,最后再进行T命令进行逐步执行,以查看相应结果。

汇编语言课后习题解答

第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. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(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和

《微机接口与应用(含汇编语言)》题库及答案

《微机接口与应用(含汇编语言)》题库及答案 一、单顶选择题 1. 8086是( ) A) 单片机 B) 单板机 C) 微处理器 D)微机系统 2. 8086微处理器可寻址访问的最大I/O空间为( ) A) 1K B) 64K C) 640K D) 1M 3.集成度最高的存储线路是( )态线路。 A) 6管静态 B) 6管动态 C)4管动态 D)单管动态 4.当8086/8088访问100H端口时,采用()寻址方式。 A) 直接 B) 立即 C) 寄存器间接 D) 相对 5. 8086/8088的中断是向量中断,其中断服务程序的入口地址是由()提供。 A) 外设中断源 B) CPU的中断逻辑电路 C) 以中断控制器读回中断类型号左移2位 D) 由中断类型号指向的中断向量表中读出。 6.接口芯片是CPU与外设之间的界面,它与外设之间的联络信号是()。 A) RDY,STB B) RDY,INT C) STB,INT D) RDY,STB,INT 7.对8253—5的定时与计数()。 A) 有两种不同的工作方式 B) 定时只加时钟脉冲,不设计数值 C) 实质相同 D) 从各自的控制端口设置 8.单片机是( ) A)微处理器 B)微型计算机 C) 微机系统 D)中央处理器 9. 8086最小工作方式和最大工作方式的主要差别是() A)内存容量不同 B)I/O端口数不同 C)数据总线位数不同 D)单处理器和多处理器的不同 10. 8253—5某计数器的最大计数初值是()。 A) 65536 B) FF00H C) 0000H D) FFFFH 11. 8253—5某计数器工作在方式1时,在计数中途OUTi为() A) 由低变高 B) 由高变低 C) 高电平 D) 低电平 12.由8088微处理器组成的PC机的数据线是( ) A)8条单向线 B)16条单向线C)8条双向线 D)16条双向线13.要组成64KB的8086系统程序存储空间,选用EPROM的最佳方案是( )芯片。 A) 1片64K X 8位 B) 2片32K X 8位 C) 4片16K X 8位 D) 8片8K X 8位 14.采用条件传送方式时,必须要有() A) 中断逻辑 B) 请求信号 C) 状态端口 D) 类型号 15. 8086/8088的中断向量表()。 A) 用于存放中断类型号 B) 用于存放中断服务程序入口地址 C) 是中断服务程序的入口 D) 是中断服务程序的返回地址

汇编语言第6章答案

第6章流程控制 习题1. 指令指针EIP是通用寄存器还是专用寄存器?有指令能够直接给它赋值吗?哪些指令的执行会改变它的值? 解答:EIP是专用寄存器,不能通过指令直接给它赋值。可以改变其值的指令有:(1)无条件分支,包括:跳转(jmp)、调用(call)、中断(int)。 (2)条件分支,与标志位CF、OF、PF、SF、ZF相关的条件跳转指令。 (3)循环指令,LOOP、LOOPE等。 3. 相对于BASIC语言中GOTO语句作用的IA-32处理器指令是哪条? 跳转指令jmp 习题4. IA-32处理器通过改变EIP寄存器的数值就可以改变程序,如果程序需要无条件跳转到标号done位置执行,使用“MOVL done, %EIP”语句是否可以达到,为什么?如果不能实现该功能,应该使用哪条指令? 解答:不能。不能对EIP寄存器直接赋值。使用指令jmp done可以实现。 习题6 条件转移指令Jxx所利用的条件保存在何处?有多少个不同条件的转移指令? 保存在EFLAGES寄存器中 共16个(P107) 习题7 JA和JG指令发生跳转的条件都是“大于”,它们有什么区别? 在处理带符号值和无符号值时有所区别。计算无符号值时,使用JA,对于带符号值,使用JG。 习题8. 执行如下程序片断后,CMP指令分别使得5个状态标志CF、ZF、SF、OF和PF为0还是为1?它会使得哪些条件转移指令条件成立、发生转移? movl $0x20, %eax movl $0x80, %ebx cmpl %ebx,%eax 解答:CF=1 ZF=0 SF=1 OF=0 PF=1 可以使得发生转移的指令有:JC JS JP JNZ JNO 习题9. 有如下程序片断,请使用一条指令代替其中的两条指令: (1) again: ... jz next jmp again next: (2) again: ... jle next

汇编第五章课后题答案

1.从屏幕上输入小写字母,转化为大写字母输出 (解法1) DATA SEGMENT MESSAGE DB "ENTER A STRING:",0AH,0DH,'$' MAXLENGTH DB 50,?,50 DUP(?) ;每次最多可以输入49个字符DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX LEA DX,MESSAGE ;输出ENTER A STRING MOV AH,09H INT 21H LEA DX,MAXLENGTH ;输入字符串 MOV AH,0AH ;键盘输入到缓冲区,DS:DX=缓冲区首址 INT 21H ;(DS:DX)=缓冲区最大字符数,(DS:DX+1)=实际输入的字符数 MOV AH,02H ;输出回车换行 MOV DL,0AH INT 21H MOV AH,02H MOV DL,0DH INT 21H

MOV CL,MAXLENGTH+1;把字符的实际长度放入寄存器CL MOV CH,0 MOV BH,02H LEA SI,MAXLENGTH+2;取字符串的基地址放入SI XUN: MOV AL,[SI] CMP AL,'Z' JBE S1 ;小于等于'Z'转移 JMP S3 S1:CMP AL,'A' JAE DA ;大于等于'A'转移 JMP OUTPUT DA:ADD AL,20H JMP OUTPUT S3:CMP AL,'z' ;小于等于小Z转移 JBE S4 S4:CMP AL,'a' ;大于等于小a转移 JAE XIAO JMP OUTPUT XIAO: SUB AL,32 JMP OUTPUT OUTPUT: MOV DL,AL MOV AH,02H ;显示输出 INT 21H

完整版汇编语言试题及答案..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

汇编语言程序设计答案+廖建明-chap6

第六章习题答案 6.1 C 6.2 D 6.3 D 6.4 C 6.5 B 6.6 错。在L0: MOV AL,0语句后面加上RET语句 6.7 段内调用:保存IP内容入栈;更新IP内容 段间调用:保存CS,IP内容入栈;更新CS,IP内容 6.8 段内返回:从栈中弹出一个字的内容送入IP寄存器;SP=(SP)+n(如果带有操作数n) 段间返回:从栈中弹出两个字的内容分别送入IP,CS;SP=(SP)+n(如果带有操作数n) 6.9 从栈中弹出两个字的内容分别送入IP,CS;SP=(SP)+4 6.10 在需要和主程序共享寄存器的时候需要保护寄存器 6.11 寄存器传递参数;堆栈传递参数;地址表传递参数 6.12 相同点:都进行一次程序跳转 不同点:CALL会保存原地址IP入栈,而JMP不会 6.13 错误:子程序是FAR类型的,CALL时用的是NEAR 6.14 BX;(BX);SHIFT 6.15 图略 6.16 DATA SEGMENT N DB 5 DATA ENDS STACK SEGMENT DW 20H DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX MOV AL,N CALL FACT;调用阶乘子程序计算5! MOV RESULT,DX DEC N MOV AL,N CALL FACT;调用阶乘子程序计算4! ADD RESULT,DX DEC N MOV AL,N CALL FACT;调用阶乘子程序计算3! ADD RESULT,DX MOV AH,4CH

汇编语言 第七章 子程序设计

第七章子程序设计 返回目录 练习题 7.4.1 单项选择题 1.在子程序中,如果利用堆栈保护现场,在恢复现场时,先压入堆栈的内容()。 A.先弹出堆栈 B.后弹出堆栈 C.不分先后弹出堆栈 D.任意弹出堆栈 2.下列叙述不正确的是()。 A.在子程序中的现场保护只能用堆栈来实现。 B.在子程序中的现场保护用堆栈来实现是其中的一种方法。 C.在子程序中的现场保护可以有多种实现方法。 D.在子程序中的现场保护可以将要保护的内容送内存变量来实现。 3.下列定义子程序的是()。 A. PNAME PROC B. PNAME PROC …

… PNAME ENDS ENDM C. PNAME PROC D. PNAME PROC … … PNAME ENDP PNAME END 4.子程序重定位可选在内存中的整个区域内,在进行程序 设计时,子程序应采用()。 A.绝对地址 B.相对地址 C.逻辑地址 D.物理地址 5.下列叙述不正确的是()。 A.在子程序中可以再次调用子程序。 B.在主程序中一般用跳转指令转移到子程序。 C.在子程序中一般用返回指令返回到主程序。 D.在主程序中一般用调用指令转移到子程序。 6.下列叙述正确的是()。 A.执行一条段内返回指令,先从堆栈弹出两个字节 的内容,然后SP指针减2。 B.执行一条段内返回指令,先SP指针减2,然后从

堆栈弹出两个字节的内容。 C.执行一条段内返回指令,先SP指针加2,然后从堆栈弹出两个字节的内容。 D.执行一条段内返回指令,先从堆栈弹出两个字节的内容,然后SP指针加2。 7.下列叙述正确的是()。 A.执行一条段间调用指令,先将CS、IP的内容压栈,然后将目的地址送CS和IP。 B.执行一条段间调用指令,先将目的地址送CS和IP,然后将CS、IP的内容压栈。 C.执行一条段间调用指令,先将CS、IP的内容压栈,然后SP指针加2。 D.执行一条段间调用指令,先将CS、IP的内容压栈,然后SP指针减2。 8.下列叙述不正确的是()。 A.在汇编语言程序中,每一个过程允许有多条RET 指令。 B.在汇编语言程序中,每一个过程只允许出现一条RET指令。 C.在汇编语言程序中,每一个过程结束之前一定有一条RET指令。 D.在汇编语言程序中,以过程形式表示的代码段一

汇编语言试题及答案.

一,单项选择题(每小题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

汇编语言王爽第二版课后答案

第一章基础知识 检测点1.1(第8页) ---------------------- (1) 13 (2) 1024,0,1023 (3) 8192,1024 (4) 2^30,2^20,2^10 (5) 64,1,16,4 (6) 1,1,2,2,4 (7) 512,256 (8) 二进制 注意: 1.第4题中的符号'^'指求幂运算(如: 2^30指2的30次方) 第二章寄存器(CPU工作原理) 检测点2.1(第18页) ---------------------- (1)写出每条汇编指令执行后相关寄存器中的值。第一空:F4A3H 第二空:31A3H 第三空:3123H 第四空:6246H 第五空:826CH 第六空:6246H 第七空:826CH 第八空:04D8H 第九空:0482H 第十空:6C82H 第十一空:D882H 第十二空:D888H 第十三空:D810H 第十四空:6246H (2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 解答如下: mov ax,2 add ax,ax add ax,ax add ax,ax 检测点2.2(第23页) ---------------------- (1)00010H,1000FH (2)1001H,2000H 第2题说明: 因为段的起始地址要为16的倍数。所以当段地址小于1001H或大于2000H时CPU都无法寻到。 检测点2.3(第33页) ----------------------答:CPU修改了4次IP的值。 情况如下: 第1次:执行完mov ax,bx后 第2次:执行完sub ax,ax后 第3次:读入jmp ax后 第4次:执行完jmp ax后 最后IP的值为0 实验1 查看CPU和内存,用机器指令和汇编指令编程(第33页) ----------------------------------------------------- 1.预备知识:Debug的使用 <此部分略> 2.实验任务(第43页) (1) <此部分略> (2) <此部分略> (3) 通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。此生产日期不能被改变,因为其具有‘只读’属性。 (4) 通过向内存中的显存写入数据,使计算机根据写入的数据进行ASCII转换,并将转换后且可打印的字符输出到屏幕上。<注:关于显存的详细讨论不在此题范围> 第三章寄存器(内存访问) 检测点3.1(第52页) ---------------------- (1)(题目:略) 第一空:2662H 第二空:E626H 第三空:E626H 第四空:2662H 第五空:D6E6H 第六空:FD48H 第七空:2C14H 第八空:0000H 第九空:00E6H 第十空:0000H 第十一空:0026H 第十二空:000CH 提示:此题可在DEBUG中利用E命令在本机上按照题目中所给出的内存单元及其数据进行相应地修改,然后再用A命令进行写入(题目中所给出的)相应的汇编指令,最后再进行T命令进行逐步执行,以查看相应结果。

汇编语言试题及答案

一,单项选择题(每小题1分,共20分) 1.指令JMP FAR PTR DONE属于() A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是() A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS 指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP 指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JN L指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JN B指令 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的字节 D.附加段中偏移量为3236H的字节 9.执行如下程序:()

汇编语言(沈美明,温冬婵)课后答案

汇编语言程序设计(第二版) (清华大学IBM-PC 汇编语言程序设计(第二版)沈美明温冬婵编著) 第二章 1、答:直接由指令指定的I/O端口数为256个。 2、答: 3、答:字节单元:(30022H)= AB H,(30024H)= EF H 字单元:(30021H)= AB34 H,(30022H)= CDAB H。 4、答:3017:000A的存储单元的物理地址是3017AH, 3015:002A的存储单元的物理地址是3017AH, 3010:007A的存储单元的物理地址是3017AH。 5、答:该程序的第一个字的物理地址是0AAA40H。 6、答:条件标志OF、SF、ZF、CF的值依次分别为0、0、0、0。 7、答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、 SP、BP、DI、SI(注意:学生尽量不要用SP参与加减运算) (2)CX (3)DX、AX、AH、AL (4)CS、DS、ES、SS (5)FLAGS (6)IP (7)SS、SP、BP 8、答:可以用来指示存储器地址的寄存器有BX、SP、BP、DI、SI、IP、CS、DS、 ES、SS。 9、答:唯一正确的是D。 第三章 2、答: (1)ADD DX, BX (2)ADD AL, [BX][SI] (3)ADD [BX+0B2H], CX (4)ADD [0524H], 2A59H (5)ADD AL, 0B5H 3、答: (1)MOV BX, OFFSET BLOCK + 0AH MOV DX, [BX] (2)MOV BX, 0AH MOV DX, BLOCK[BX] (3)MOV BX, OFFSET BLOCK MOV SI, 0AH MOV DX, [BX][SI]

汇编语言2008秋季期末考试复习题及参考答案

汇编语言2008秋季期末考试复习题及参考答案 一、填空 1. 十进制数369转换成二进制数为()2,转换成十六进制数为()16. 2. 计算机中的指令由()和(地址码)两部分组成。 3. 8086的地址总线有20根,寻址范围为()字节。 4. 下一条将要执行的指令的地址存放在寄存器()中。 5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。 6. 汇编语言源程序需经过()程序汇编,()程序连接才能生成可执行文件。 7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=() 8. REP指令前缀与()指令配合使用。 9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的()和()命令。 10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令();如果要求第0,1位变反,可使用指令() 11. 宏汇编适合于(),()的子功能段使用; 二、选择题 1. 设字长N=16,有符号数7AE9H的补码表示为( ) A.9EA7H B. 76C4H C. 8417H D. 7AE9H 2. 比较有符号数3260H与0B425H的大小关系为( ) A. 相等 B. 小于 C. 大于 D. 不能比较 3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为( ) A.16 d x(DS)+(BX)+(DI)B.16d x(ES)+(BX)+(DI) C.16d x(SS)+(BX)+(DI)D.16d x(CS)+(BX)+(DI) 4. 在指令MOV AX,[1000H]中,源操作数的寻址方式为( ) A.立即寻址B.直接寻址C.段内间接寻址D.寄存器寻址 5. 中断矢量表中存放的是( ) A. 中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址 6. 8086 的汇编语言指令系统中的条件转移指令可以使程序转移到( ) A. 段内的任何地方 B. 距该指令偏移地址为-32768~+32767的地方 C. 距该指令偏移地址为-128~+127的地方. D. 段外 7. 能定义ASCII码字符串的数据定义语句有( ) A. DB,DW,DD,DQ,DT B. DB,DW,DD C. DB, DW D. DB; 8. 若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为( ) A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1 C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=1 9. 比较指令CMP( ) A. 专用于有符号数比较 B. 专用于无符号数比较 C. 专用于串比较 D. 不区分比较的对象是有符号数还是无符号数 10. 数据传送指令对标志位的影响为( ) A.都不影响;B.都影响; C.除了SAHF,POPF,其它均不影响. D.除了控制标志位,其它均不影响 三、判断题 ( )31. 段间调用的子程序必须由伪操作FAR说明为远过程。

相关主题
文本预览
相关文档 最新文档