汇编作业集锦

更新时间:2023-10-25 20:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

汇编作业集锦

作业一:

1. 在计算机内部,计算机能够直接执行的程序语言是 C 。 A.汇编语言 B。C++语言 C.机器语言 D。高级语言

2. 在堆栈段中,存放栈顶地址的寄存器是 B 。 A.IP B.SP C. BX D. BP

3. 指令指针寄存器IP用来存放代码段中的偏移地址。在程序运行的过程中,它始终指向 A 。

A.下一条指令的首地址 B.下一条指令的地址 C.当前指令的首地址 D.当前指令的地址

4. 编译程序的功能是 B 。

A.检查源程序中的语法错误和逻辑错误 B.将源程序编译成目标程序 C.改正源程序中的语法错误 D.将高级语言源程序翻译成汇编语言源程序

5. 用户为了解决自己的问题,用汇编语言所编写的程序,称为 B 。 A.目标程序 B.源程序 C.可执行程序 D.汇编程序

6. 计算机中用来存储程序、数据等信息的记忆装置是 D 。 A.控制器 B.运算器 C.CPU D.存储器

7.在宏汇编中,源程序必须通过____汇编_______生成目标代码,然后用连接程序将其转化为可执行文件, 该文件可在系统中运行。

8 当 SS =3000H,SP =0100H 时,执行 PUSH AX 指令后,堆栈顶部的物理地址 是(D )

A.30100H B.30098H C.30102H D.300FEH

9 设10000010B分别以原码、补码及反码表示时,则对应的十进制数依次是( C ) A.-82、-126、-2 B.-2、-125、126 C.-2、-126、-125 D.-82、-125、125

10 若寄存器AX、BX、CX、DX的内容分别为18,19,20,21时,依次执行PUSH AX,PUSH

BX,POP CX,POP DX后,寄存器CX的内容为_________19_________。

11 若物理地址为2D8C0H,偏移量为B6A0H,则段地址为 _____2222H____。

作业二:

1. 8086在基址变址的寻址方式中,基址、变址寄存器分别是( B )。 A.AX或CX、BX或CX C.SI或BX、DX或DI

B.BX或BP、SI或DI

D.CX或DI、CX或SI

2. 设(SS)=338AH,(SP)=0450H,执行PUSH BX和PUSHF两条指令后,堆栈顶部的物理

地址是( A)。

A.33CECH B.33CF2H

3。 设(AX)=0C544H,在执行指令ADD AH,AL后,相应的状态为( C )。 A.CF=0、OF=0 C.CF=1、OF=0

B.CF=0、OF=1

D.CF=1、OF=1

4.设DS=2000H,SS=1500H,(ES)=3000H,(SI)=00B0H,(BX)=1000H,(BP)=0020H,指

出下列指令的源操作数的寻址方式是什么?若该操作数为存储器操作数,请计算其物理地址。

(1) MOV AX,DS:[0100H]

直接寻址

PA=20000H+0100H=20100H

(2) MOV BX,0100H

立即寻址

(3) MOV AX,ES:[SI]

寄存器间接寻址 PA=30000H+00B0H=300B0H

(4) MOV CL,[BP]

)寄存器间接寻址 PA=15000H+0020H=15020H

(5) MOV AX,[BX][SI]

寄存器间接寻址

PA=20000H+1000H+00B0=210B0H

6) MOV CX,BX

寄存器寻址

(7) MOV AL,3[BX][SI] (8) MOV AL,[BX+20]

基址变址寻址

PA=20000H+1000H+00B0H+3=210B3H PA=20000H+1000H+20=21000H+0014H=21014H

作业三:

1 设(SP)=000CH,(SS)=00A8H,在执行POP AX指令后得到的栈顶的物理地址为( B ) A. 000B6H B.00A8EH C.000B2H D.00A8AH

2. 语句”BUF DB 25”的含义是( B )

A.用BUF 表示25

B.定义BUF为字节变量,初始值为25

C.从标号BUF对应的地址起分配25个单元 D.定义BUF为变量,其地址为25

3. 假设VAR为变量,则指令MOV SI,OFFSET VAR的源操作数的寻址方式是(D )

A.间接寻址 B.存储器寻址 C.寄存器寻址 D.立即寻址

4.数据定义BUF DB ‘1234’,执行指令MOV CL, LENGTH BUF后,CL寄存器的内容是( A )

A. 1 B.2 C.3 D.

5.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是

( B )

A.2108:00EA B.2025:0F2A C.2100:117A D.2000:017A

设数据段定义如下:(6~8题均采用该数据段) ORG 3050H COUNT EQU 4

DBUF DB ‘MOUSE.MOU!’ DBUF1 DW 3040H

DB ‘TERMINER’

DB 506

6. DBUF+16单元中的内容是( D )

A.’E’

B.’T’ C.’M’ D.’I’

7. DBUF1表示的地址是( A )

A.305AH

B.305CH C.305BH

3059H

D.

8. 上面伪指令使用出错的是( D )

A.DB ‘MOUSE.MOU!’

B.DW 3040H

C.DB ‘TERMINER’ D.DB 506

9 执行下面的程序段后, BX =( C ) NUM = 100

MOV BX, NUM NE 50

A. 50 B.0 C.0FFFFH D.1

使用8086/8088汇编语言的伪操作命令定义:

10 VAR DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0))则在VAL存储区前十个字节单元的数据是 ( D )A.1,2,3,3,2,1,0,1,2,3 B.1,2,3,3,3,3,2,1,0,1 C.2,1,2,3,3,2,1,0,2,1 D.1,2,3,3,3,1,0,1,0,1

作业四:

1、设计指令序列,完成下列功能:

(1)写出将AL的最高位置1,最低位取反,其它位保持不变的指令段。 OR AL,1000 0000B XOR AL,0000 0001B

(2)写出将AL中的高四位和低四位数据互换的指令段。 ROL AL,1 ROL AL,1 ROL AL,1 ROL AL,1

2、若AX=-15要得到AX=15应执行的指令是( A ) A. NEG AX C. INC AX

3、以下三指令执行后,DX =( C ) MOV DX,0 MOV AX,0FFABH CWD

A. 0FFABH B.0 C.0FFFFH D.无法确定

B. NOT AX D. DEC AX

4、将累加器AX 内容清零的错误指令是( D )

A. AND AX,0 B.XOR AX,AX C.SUB AX,AX D.CMP AX,AX

5、INC 指令不影响( B )标志

A. OF B.CF C.ZF D.SF

6、设AL中的值为84H,CF=1,现在执行 RCR AL,1 指令,AL中的值和CF分别

为( C )

A. 0C2H,1 B.42H,1 C.0C2H,0 D.42H,0

7、 MOV AL,BL

NOT AL XOR AL,BL OR BL,AL

程序段执行后, AL= __0FFH____、BL= ___0FFH____。

8、执行下列指令后:

MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX HLT

寄存器AH的值是 8DH ,寄存器AL的值是 00H 寄存器DX的值是 0000H 。

设数据段定义如下:(9~11题均采用该数据段) DATA SEGMENT NA EQU 15 NB EQU 10

NC DB 2 DUP (4,2 DUP (5,2)) CNT DB $-NC CWT DW $-CNT ND DW NC DATA ENDS

9. 从DS:0000开始至CNT单元之前存放的数据依次是( D )

A.15,10,4,5,2,5,2,4,5,2,5,2 B.15,10,4,2,5,2,4,2,5,2 C.0FH,0AH,4,5,2,5,2 D.4,5,2,5,2,4,5,2,5,2

10. ND单元中的值是( A )

A.0000H B.0200H C.0003H D.0002H

11. CWT单元中的值是( B )

A.2 B.1 C.11 D.12

设数据段定义如下:(12~14题均采用该数据段)

DATA SEGMENT DATA SEGMENT ORG 0100H

X1 DB 25,’25’

X2 DW ?

Y1 EQU X1

Y2 EQU $-Y1

DATA ENDS

12. MOV BX,OFFSET X1 指令执行后,BX中的内容是(B )

A.25 B.0100H C.0000H D.’25’

13. 汇编后Y2的值是( B )

A.4 B.5 C.3 D.6

14. MOV AL,Y1+1 指令执行后,AL中的内容是( D) A.19H B.01H C.35H D.32H

作业五:

1 试分析下列程序段执行后,AX和DX寄存器的内容分别是什么? VAR1 DB 86H

VAR2 DW 2005H,0021H,849AH,4000H MOV AL,VAR1 CBW

LEA BX,VAR2 MOV DX,2[BX]

SUB AX,DX.

AX=FF65H. DX=0021H

2 试分析下列程序段:

ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP SHORT L5

如果AX 和BX的内容如下: AX BX

(1)14C6H 80DCH (2)B568H 54B7H (3)42C8H 608DH (4)D023H 9FD0H

(5)9FD0H D023H

试问该程序分别在上面几种情况下执行后,程序转向哪里?

(1).L1 (2)L1 (3)L2 (4)L5 (5)L5

3

试分析下列程序段,回答所提问题。 ORG 3000H

DB 11H,12H,13H,14H,15H

MOV BX,3000H

STC

ADC BX,1 SAL BL,1

INC BYTE PTR [BX]

A. 程序段执行完,3004H 单元中的内容是什么?

程序段执行后BX中的内容是什么?CF的值是1还是0?

3.16H,3004H,0

作业六:

1.如果用调试程序DEBUG的R命令在终端上显示当前各寄存器的内容如下,请说明当前堆栈段段基址是多少?栈顶的物理地址是多少? C>DEBUG -R

AX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC 21F0H, 31EEEH

2. 有指令 JMP DX ,在执行前,DX=1234H ,IP =5678H,执行该指令后,寄存器变化正确的是___B_____。

A) DX=1234H ,IP =5678H B) DX=1234H ,IP =1234H

C) DX=5678H ,IP =5678H D) DX=5678H ,IP =1234H

3. 若要检测AL中的最高位是否为1,若为1,则转移到标号NEXT处,否则顺序执行,请用两条指令完成之。

3.CMP AL,0 JL NEXT

4.试用一条指令将一字节的立即数5AH与符号地址为NUM的存储器字节单元内容相比较

4.CMP BYTE PTR NUM,5AH 5.

试分析下列程序段,说明它完成什么操作?程序执行后,HEXNUM字

节单元中的内容是什么?

ASCNUM DB 38H

HEXNUM DB ? MOV AL,ASCNUM CMP AL,39H JBE NEXT SUB AL,7 NEXT: SUB AL,30H MOV HEXNUM,AL HLT

5.将ASCNUM 中的所表示的十六进制数的ASCII码转换为十六进制数,并放入字节单元的低四位。

HEXNUM=08H

作业七

1、CALL DWORD PTR [BX]指令是段间调用还是段内调用。它一共向堆栈中压入几个字? 段间调用, 2

2、 在子程序设计时,为什么要保护和恢复现场?

由于子程序需要用到一些寄存器或存储单元,而这些寄存器或存储单元可能被主程序使用,为了不破坏主程序原来的信息,所以要保护现场。

3.设(AX)=1122H,(BX)=3344H,(SP)=5566H,执行如下程序段后,IP和SP的值分别是什么? SUN PROC

PUSH AX ADD BX,AX PUSH BX

POP BX RET

SUN ENDP

IP=1122H,SP=5566H

4 设在DAT单元存放一个-9~+9的字节数据,在SQTAB数据区中存放了0~9的平方值,下面程序段利用直接查表法在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。请补充空格处,完善程序功能。

DSEG SEGMENT

DAT DB XXH ; XXH表示在-9~+9之间的任意字节数据 SQTAB DB 0,1,4,9,...81 SQR DB ? DSEG ENDS

SSEG SEGMENT STACK STK DB 100 DUP (?) SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DESG,SS:SSEG

START: MOV AX,DSEG MOV DS,AX MOV AL,DAT AND AL,__AL_____ JNS NEXT

NEG AL___________

NEXT: MOV BX,OFFSET SQRTAB ___XLAT_________ MOV SQR,AL MOV AH,4CH INT 21H

DESG ENDS

END START

作业八:

1、下列指令中,在指令执行后有可能影响CS值的指令数目是( B ) JMP MOV RET ADD INT JC LODS CALL MUL POP

A.3 B.4 C.5 D.6

2、下面关于宏指令的叙述不正确的是(B )

A.宏指令可以简化源程序的书写; B.宏指令可以简化目标程序;

C.宏指令和子程序的存储形式和执行方式均不相同; D.从形式上看,宏指令可以扩充机器的指令系统。

3、对于下列程序段:

AGAIN:MOV ES:[DI],AL INC DI LOOP AGAIN

可用指令( B )完成相同的功能。

A.REP MOVSB B.REP STOSB

C.REP LODSB D.REP SCASB

4、在下列指令中,隐含使用AL寄存器的指令有( D )条。 AAA MOVSB MUL BH CBW SCASB XLAT

A. 2 B.3 C.4 D.5

5、假设ES段中有一个字符中串‘12FG3LM5C’,其名为ARRAY。当以下程序段执行后,CX的值是 B 。 CLD

LEA DI,ES:ARRAY MOV AL,‘G’ MOV CX,9 REPNE SCASB HLT

A. 0 B.5 C.4 D.9

6.已知DS和ES指向同一个段,且当前数据段从0000H到00FFH单元内容分别为01H,02H,

03H,…,0FFH,00H。问下列程序段执行后,0000~0009H的内容是些什么值。

MOV SI,0000H MOV DI,0001H MOV CX,0080H CLD

REP MOVSB

6.0000到0009H都是01H

本文来源:https://www.bwwdw.com/article/nt02.html

Top