微机计算机原理及应用大连理工出版社答案 联系客服

发布时间 : 星期三 文章微机计算机原理及应用大连理工出版社答案更新完毕开始阅读28790e6fe109581b6bd97f19227916888486b995

习题四

一、选择题

1.下列4个指令中( B )是一条伪指令语句。

A.MOV AX,0034H B.SYM EQU SYM AND 0FEH C.AND AX,00FEH D.XLAT TABLE 2. 下列伪指令中用来定义字节变量的是( A )。

A.DB B.DW C.DD D.DT 3.下列指令中正确的是( D )。

A.MOV AX,[SI][DI] B.MOV BYTE PTR[BX],1000 C.PB8 EQU DS:[BP+8] D.MOV BX,OFFSET[SI] 4. 宏指令与子程序的相同之处为( A )。

A.宏指令的目标代码与子程序的目标代码都是唯一的。 B.都需要先定义,后调用。

C.执行宏指令的目标代码时与子程序时一样,都需要增加如保护、恢复现场类的额外操作。 D.宏指令的目标代码与子程序的目标代码都不是唯一的。 5.定义过程结束的伪指令符是( C )。

A.END B.ENDS C.ENDP D.ENDM

6.8086宏汇编源程序中,若BUFF是字变量名,则执行指令MOV BX,BUFF后, BX中的值为BUFF单元的( A )。

A.字数据值 B.变量类型值 C.段基值 D.段内偏移量 7. 以下不是8086宏汇编语言中规定的保留字的是( C )。

A.MOV B.INC C.SET D.PUBLIC

8. 在一段汇编程序中多次调用另一端程序代码,用宏指令比用子程序实现,其目标代 码( B )。

A.占内存空间小,但速度慢 B.占内存空间大,但速度快 C.占内存空间相同,速度快 D.占内存空间相同,速度慢 9.已知某数据段定义如下: DATA SEGMENT DAT DB 20 DUP(?) DATA ENDS

则以下指令中源操作数不是立即数的是( D )。

A. MOV AX,LENGTH DAT B. MOV AX,DATA C. MOV AX,SEG DAT D. MOV AX,DAT 二、判断题(判断对错,并改正)

1.所有8086/8088汇编语言源程序都必须有自己的代码段和数据段。(×) 所有8086/8088汇编语言源程序都必须有自己的代码段。

2.过程调用和宏调用都发生在程序运行时。(X)宏调用发生在程序运行时。(×)

宏调用发生在程序汇编运行时。

3.8086的一个宏汇编语言源程序可以只定义一个段。(√)

4.8086宏汇编语言中,宏和过程区别是:宏可以简化源程序书写,但不能精简目标代 码。(√)

5.设ABC为一标号,则其用在宏汇编伪指令前时需在后面加上冒号,而用在8086指 令前时不要冒号。(×)8086指令前时需要冒号。

6.无论复杂还是简单的程序都可由顺序、分支和循环三种基本程序结构实现。(X)还有子程序调用或者宏调用。 三、填空题

1.按照以下程序段定义,变量S1的段内偏移地址是_0100___H,变量NB的段内偏移地址是010B___H,符号COUNT的值是000B H。 DATA SEGMENT ORG 0100H

S1 DB 0,1,2,3,4,5 S2 DB ‘12345’ COUNT EQU $-S1 P DW -1

NB DB 3 DUP(2) DATA ENDS

(DS)×10H=30000H (SI)= 2000H + 存储器 2. 当INT 21H中断的功能号为02H时,它的入口参数送寄存器___DL_____。 3. 808610操作码 宏汇编上机过程中,用户按编辑、汇编、链接顺序将依次产生32010H __ASM_____、__OBJ____和操作码 10EXE文件。 4. 8086宏汇编语言源程序中,调用功能号AH=09H时21H号中断完成的功能是 显示字符串____。 5. 汇编指令通常包括___操作码_____和___操作数_____两部分。

四、简答题 1.已知某数据段的定义如下。请在右图中标明各有关内存单元的段内偏移量及内容。 30000H DSEG SEGMENT AX … A1 DW ‘95’ CT EQU $-A1 ORG 0006H 405032010H A2 DB CT DUP(1) DSEG ENDS 答:段内偏移量0000H、0001H单元内容依次为:35H、39H,段内偏移量0006H到0009H单元内

容均为:01H。

2.已知附加段中部分数据定义如下:

DATA1 DW 123,-4,-1024,0FFFFH,0

DW 666,888,‘A’,-1,0ABCDH

执行下列程序段之后,AX、BX的值分别是多少?整个程序段实现了什么功能? TESTI: MOV CX,10 DEC CX LEA DI,DATA1 MOV BX,ES:[DI] MOV AX,BX CHKMIN: ADD DI,2 CMP ES:[DI],BX JAE CHKMAX MOV BX,ES:[DI] JMP SHORT NEXT CHKMAX: CMP ES:[DI],AX JBE NEXT MOV AX,ES:[DI] NEXT: LOOP CHKMIN

答: AX=0FFFFH,BX=0。

功能:找无符号数的最大数和最小数。把DATA1字变量视为无符号数,查找其中的最大、最小值,并将最大值保存在AX中、最小值保存在BX中。

3.宏和子程序都可简化源程序的书写,试比较两者对程序性能的不同影响。 答:宏:节省执行时间,浪费代码空间;子程序:节省代码空间,执行时间相对较长 4.指出下列程序段完成的功能。 DATX1 DB 30 DUP(8) DATX2 DB 10 DUP(?) ……

MOV CX,10 MOV BX,20 MOV SI,0 MOV DI,0

NEXT: MOV AL,DATX1[BX][SI] MOV DATX2[DI],AL INC SI INC DI LOOP NEXT

程序段完成的功能是:在DATX2的存储空间中装入DATA1中的后10个数值 。 5.下列数据段定义和分配了一些存储单元,请画出其在内存中的实际分配图。 DATA SEGNENT DBYTE DB 10,10H DDWORD DD 12345678H ARRAY DW 5 DUP(2) DATA ENDS

答:从偏移地址为0000H开始实际分配数据依次为:0AH、10H、78H、56H、34H、12H、02H、00H、02H、00H。

6.在汇编语言程序中,变量和标号有何异同?

答:变量用于定义数据,具有5个属性,常在数据段。标号用于说明指令的位置,具有三个属性,常在指令段中。 7. 已知:(AX)=4567H,(BX)=9ABCH,执行了下面的程序段后,(AX)=__BA98H___,(BX)=__9ABCH___。 CMP AX,BX JG NEXT XCHG AX,BX NEXT: NOT AX

8.已知有某字串BUF1的首址为1000H,BUF2的首址为1020H,数据段与附加段重合。 欲从BUF1处开始将20个字数据顺序传送至BUF2处,试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。

LEA SI,BUF1

ADD SI,_40___ LEA DI,BUF2 ADD DI ,40____________ STD

MOV CX,_20_____ REP MOVSW

9.欲将数据段中首址为BUFFER,共50个字节段的存储区初始化为0,试在下面程序 段的空白处填上适当的指令或操作数,以实现上述功能。 LEA DI,DEST MOV CX,_50___ cld

mov al,__0__ rep __STOSB___ 10.已知(AL)=56H,下列程序执行之后,(AL)=__38H__,该程序段实现的功能是_将组合BCD码转换为二进制数___。