文档视界 最新最全的文档下载
当前位置:文档视界 › 汇编习题及解答

汇编习题及解答

汇编习题及解答
汇编习题及解答

选择题(部分习题应多选)

1、汇编语言源程序经汇编后不能直接生成(1)。

(A).OBJ文件(B).LST文件

(C).EXE文件(D).CRF文件

2、运算型指令的寻址和转移型指令的寻址,其不同点在于(2)。

(A)前者取操作数,后者决定程序的转移地址

(B)后者取操作数,前者决定程序的转移地址

(C)两者都是取操作数

(D)两者都是决定程序的转移地址

3、JMP WORD PTR [DI]是(3)。

(A)段内间接转移(B)段间间接转移

(C)段内直接转移(D)段间直接转移

4、JMP FAR PTR ABCD(ABCD是符号地址)是(4)。

(A)段内间接转移(B)段间间接转移

(C)段内直接转移(D)段间直接转移

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

(A)OF (B)CF

(C)SF (D)ZF

6、条件转移指令JNE的测试条件是(6)。

(A)OF (B)CF

(C)SF (D)ZF

7、逻辑移位指令SHL用于(7);

(A)带符号数乘2 (B)带符号数除2

(C)无符号数乘2 (D)无符号数除2

而算术移位指令SAL用于(8)。

(A)带符号数乘2 (B)带符号数除2

(C)无符号数乘2 (D)无符号数除2

8、下列程序执行后,请选择正确的结果:

10A3H:2000H XOR AL,AL

2002H MOV AX,CS

2004H MOV SS,AX

2006H MOV SP,2F00H

2009H MOV DX,2012H

200CH PUSH DX

200DH CALL 2700H

2010H ADD CX,DX

2012H HLT

10A3H:2700H POP CX

RET

8.1、(AX)=(9);

(A)10A3H (B)2000H

(C)2012H (D)2799H

8.2、(SP)=(10);

(A)2F02H (B)2F00H

(C)2EFEH (D)2EFCH

8.3、(DX)=(11);

(A)2700H (B)2F00H

(C)2012H (D)2010H

8.4、(CX)=(12);

(A)2700H (B)2F00H

(C)2010H (D)4024H

8.5、ZF=(13);

(A)1 (B)0

(C)不定(D)-1

10、对于下列程序段:

AGAIN:MOV ES:[DI],AL

INC DI

LOOP AGAIN

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

(A)REP MOVSB (B)REP LODS

(C)REP STOSB (D)REPE SCASB

11、AL中带符号数乘10送AL,正确的程序段是(17)。

(A)SAL AL,1 (B)ADD,AL,AL

MOV BL,AL MOV BL,AL

SAL AL,1 ADD AL,AL

SAL AL,1 ADD AL,AL

ADD AL,BL ADD AL,BL

(C)MOV CL,4 (D)ADD AL,AL

MOV BL,AL ADD AL,AL

SAL AL,CL ADD AL,AL

ADD AL,BL ADD AL,AL

12、ADD指令中,两个操作数的物理位置可以安排在(18)中。(A)两个主存单元(B)一个主存单元和一个数据寄存器(C)两个数据寄存器(D)一个堆栈单元和一个数据寄存器13、字变量ARRAY的偏移地址送寄存器BX的正确结果是(19)。

(A)LEA BX,ARRAY (B)MOV BX,OFFSET ARRAY

(C)LES BX,ARRAY (D)MOV BX,ARRAY 14、将寄存器AX的内容求反的正确操作是(20)。

(A)NEG AX (B)XOR AX,0FFFFH

(C)NOT AX (D)CMP AX,AX

1、C

2、A

3、A

4、D

5、B

6、D

7、C

8、A 10、B11、C12、C

13、A14、A15、A16、C17、A、B18、B、C、D19、A、B20、

B、C。

1、有汇编程序在汇编过程中执行的指令是(B)

A.机器语言

B.伪指令

C.状态标志

D.物理地址

2、在汇编语言程序设计中,伪指令OFFSET的含义是回送变量或标号的(B)

A.段地址

B.物理地址

C.偏移地址

D.操作数

3、求下面变量定义的元素个数送CX的正确形式是(D)ARRAY DW 1,9,9,9,12,1

A.MOV CX,LENGTH ARRAY

B. MOV CX,SIZE ARRAY

C.COUNT EQU $-ARRAY

D. COUNT EQU ($-ARRAY)/2

MOV CX,COUNT MOV CX,COUNT

4、下列数值表达式和地址表达式中,错误的是(D)

A. MOV AL,8*14+4

B.MOV SI,OFFSET BUF+13

C.MOV CX,NUM2-NUM1

D.MOV CX,NUM2+NUM2

(注:BUF、NUM1、NUM2是变量名)

5、使用LINK连接命令,执行后可生成文件的扩展名为(C)。

A. .COM

B..OBJ

C. .EXE

D. .LST

6、有如下数据定义:

OPR1 DB 23H,4AH

OPR2 DW 342AH,258FH

则下列指令正确的是(C)。

A. MOV AX,OPR1

B.MOV DL,OFFSET OPR1

C. MOV AX,WORD PTR OPR1

D.MOV BL,OPR2

7、有如下数据定义:

DA1 DW 274FH

DA2 EQU BYTE PTR DA1

DA3 EQU DA2+1

MOV AL,DA3

执行指令后。AL=(B)。

A. 50H

B.27H

C. 4FH

D. 28H

8、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令是(D)。

A. CMP

B.SUB

C. AND

D.MOV

9、下列指令序列测试BL中的数是否为奇数,若为奇数则转移至K1,横线处的指令应为(A)。

TEST BL,01H

K1

A. JNE

B.JZ

C. JS

D.JC

10、有如下程序段:

MOV CX,6

MOV AX,1

MOV BX,3

LOP: ADD AX,BX

ADD BX,2

LOOP LOP

上述指令完成后,AX=(B)

A. 6

B. 49

C.50

D. 0

11、下列调用指令中,(C)属于段间间接调用。

A.CALL SUB1

B. CALL FAR PTR SUB1

C.CALL DWORD PTR[BX]

D. CALL WORD PTR[BX][SI]

12、在多模块程序设计中,用(B)伪指令来声明公用变量。

A. EXTRN

B. PUBLIC

C.MODULE

D. COMMON

13、在DOS的9号调用中,需要显示的字符串的地址在(A)。

A. DS:DX

B. SS:DS

C.DS:SI

D. DS:DI

14、段内直接调用,程序的转移范围为(A)。

A. -128~127

B. -32768~32767

C.-65536~ 65535

D. 0~32767

15、子程序返回伪指令是(C)。

A. ENDP

B. IRET

C.RET

D. 段内与段间不同

16、在执行串操作指令时,使地址按递增方式处理,应使用的指令是(A)。

A. CLD

B. STD

C.STI

D. CLI

17、从键盘输入数据1,则在存储单元中存放的形式为(A)。

A. 31H

B. 01H

C.”1”

D. ‘1’

18、指令IRP重复执行语句的次数由(B)。

A. 表达式

B. 实参个数

C.字符串中字符个数

D. 不确定

19、每次宏调用时,宏体中程序段有些部分允许作适当的修改,所用的宏定义应(C)。

A. 不带参数

B. 进行宏展开

C.带参数

D. 不进行宏展开

20、宏调用时的参数传递是由汇编程序通过(C)实现的。

A. 寄存器

B. 堆栈

C.实参替换形参

D. 内存单元

21、可屏蔽中断就是它的请求是否被CPU响应要受(B)的控制。

A. TF

B. IF

C.OF

D. SF

22、中断发生过程和子程序调用过程的一个明显区别是中断发生时,CPU自动清除了(A)。

A. IF和TF位

B. TF位

C.IF和SF位

D. TF和SF位

1、假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是⑴ 。

(A)20102H (B)20101H

(C)200FEH (D)200FFH

2、执行下列指令后:

MOV AX,1234H

MOV CL,4

ROL AX,CL

DEC AX

MOV CX,4

MUL CX

HLT

寄存器AH的值是⑵ ,

(1)(A)92H (B)8CH

(C)8DH (D)00H

寄存器AL的值是⑶ 。

(2)(A)60H (B)00H

(C)04H (D)A0H

3、执行完下列指令后:

STR1 DW ‘AB’

STR2 DB 16 DUP (?)

CNT EQU $-STR1

MOV CX,CNT

MOV AX,STR1

HLT

寄存器CL的值是⑷ ,

(A)10H (B)12H

(C)0EH (D)0FH

寄存器AX的值是⑸ 。

(A)00ABH (B)00BAH

(C)4142H (D)4241H

4、执行返回指令,退出中断服务程序,这时返回地址来自

⑹ 。

(A)ROM区(B)程序计数器

(C)堆栈区(D)CPU的暂存寄存器

5、执行下列程序:

MOV AX,0

MOV BX,1

MOV CX,100

LAB1:ADD AX,BX

INC BX

LOOP LAB1

HLT

执行后的结果为(BX)=⑺ ,

(A)99 (B)100

(C)101 (D)102

(AX)=⑻ 。

(A)5000 (B)5050

(C)5100 (D)5150

6、对于下列程序段:

AGAIN:MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP AGAIN

也可用指令⑼ 完成同样的功能。

(A)REP MOVSB (B)REP LODSB

(C)REP STOSB (D)REPE SCASB

7、执行下列程序,选择正确的结果:

MOV SP,2000H

MOV AX,0F0H

MOV SI,1234H

MOV DX,5678H

PUSH SI

POP DI

SHL DX,1

TEST AX,DX

PUSH DX

HLT

SP= ⑽ ;

(A)2000H (B)1FFFH

(C)2001H (D)1FFEH

DH内容所在存储器的偏移地址为⑾ ;

(A)1FFFH (B)1FFEH

(C)1FFDH (D)1FFCH

DL内容所在存储器的偏移地址为⑿ ;

(A)1FFFH (B)1FFEH

(C)2000H (D)1FFDH

AX= ⒀ ;

(A)0H (B)78H

(C)0F0H (D)56H

DI= ⒁ ;

(A)1234H (B)5678H

(C)2000H (D)00F0H

DX= ⒂ ;

(A)5678H (B)0ACF0H

(C)2B3CH (D)0ABF0H

标志位CF= ⒃ ;

(A)0 (B)1

(C)不定

8、交换寄存器SI、DI的内容,正确的程序段是⒄ 。

(A)PUSH SI (B)PUSH SI

PUSH DI PUSH DI

POP SI POP DI

POP DI POP SI

(C)MOV AX,SI (D)MOV AX,SI

MOV SI,DI MOV BX,DI

MOV DI,AX XCHG BX,AX

9、完成41H送[2100H]、42H送[2101H]的正确程序段是⒅ 。

(A)MOV AL,41H (B)MOV SI,2100H

MOV [2100H],AL MOV [SI],‘A’

INC AL INC SI

MOV [2100H],AL MOV [SI],‘B’(C)MOV AX,4241H (D)MOV AX,‘AB’

MOV [2100H],AX MOV [2100H],AX

10、(SP)=2800H,使(SP)=27FEH的正确指令是⒆ 。

(A)PUSH AX (B)MOV SP,27FEH

(C)POP AX (D)MOV [SP],27FEH

11、REPNE/REPNZ指令的退出条件是⒇ 。

(A)(CX)=0 (B)ZF=0

(C)(CX)=1 (D)ZF=1

1、D

2、C

3、B

4、B

5、C

6、C

7、C

8、B

9、A10、D11、A12、B;

13、C14、A15、B16、A17、A、C18、B、C19、A、B20、A、D。

0、执行返回指令,退出中断服务程序,这时返回地址来自(C)。

(A)ROM区(B)程序计数器

(C)堆栈区(D)CPU的暂存寄存器

1.汇编语言是。

A.低级语言

B.中级语言

C.高级语言

D.机器语言

2.十进制数-111的8位二进制补码为。

A.10010001B

B.11110110B

C.01101111B

D.11101111B

3.微机系统中有哪些总线?

A.状态总线、数据总线、控制总线

B.地址总线、状态总线、控制总线

C.状态总线、数据总线、地址总线

D.数据总线、地址总线、控制总线

4.下列有关段地址、偏移地址、物理地址的叙述正确的

是。

A.若已知物理地址,则可以计算出唯一的段地址和偏移地址。

B.段的划分可以从任何一个存储单元开始。

C.8086规定段的大小必须为64K字节。

D.多个段可以共用某些存储单元。

5.指令MOV BX, DS:[BP]中,源操作数所采用的寻址方式是。

A.寄存器寻址

B.寄存器间接寻址

C.基址变址寻址

D.寄存器相对寻址

6.有语句:COUNT EQU 256,下列四种叙述中,正确的是。

A.COUNT是变量

B.COUNT是符号常数

C.COUNT占用一个字节的存储单元

D.COUNT占用二个字节的存储单元

7.设SP初值为2000H,执行指令"PUSH AX"后,SP的值是。

A.1FFFH

B.1998H

C.1FFEH

D.2002H

8.设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。执行SBB AL,[SI]后,正确的结果是。

A.AL=5FH SF=1 CF=1

B.AL=60H SF=1 CF=0

C.AL=5FH SF=0 CF=1

D.AL=60H SF=0 CF=0

9.假设程序中的数据定义如下,则V4的值为。

V1 DW ?

V2 DB 20 DUP(?)

V3 DD ?

V4 = $-V1

A.24

B.25

C.27

D.26

10.下面关于汇编语言中的宏的叙述正确的是。

A.宏定义中的形参个数与宏调用中的实参个数必须相等。

B.宏的名字不能与指令的名字相同。

C.宏定义中的形参不能出现在指令的操作码部分。

D.宏定义中的形参个数与宏调用中的实参个数可以不相等,只要展开后得到的语句是合法的即可。

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

6.B 7.C 8.C 9.D 10.D

2. 运算型指令的寻址和转移型指令的寻址,其不同点在于(2)。

(A)前者取操作数,后者决定程序的转移地址

(B)后者取操作数,前者决定程序的转移地址

(C)两者都是取操作数

(D)两者都是决定程序的转移地址

7. 不能将累加器AX的内容清0的指令是 (7) 。

(A)AND AX,0 (B)XOR AX,AX

(C)SUB AX,AX (D)CMP AX,AX

8. 8086/8088响应中断时,不自动压入堆栈的有 (8) 。

(A)通用寄存器的内容(B)CS的内容

(C)IP的内容(D)标志寄存器的内容

9. MOV AX,WORD PTR[BX][SI]源操作数的寻址方式是 (9) 个。

(A)寄存器寻址(B)基址变址寻址

(C)相对基址变址寻址(D)直接寻址

2.A 7.D 8.A 9.B

1. 用DEBUG.EXE调试程序时,显示存储单元内容的命令是(1)。

(A) R (B) T (C) G (D) D

2. 下列指令中,源操作数在代码段中的是 (2) 。

(A)MOV AL, 80H

(B)ADD AL, BL

(C)CMP AX, [1234]

(D)AND AL, ES:[1234]

3. 下列指令中合法的是 (3) 。

(A)IN AL, 400 (B)MOV AL,BX

(C)PUSH AL (D) SHL AX, CL

4. 8位有符号数的表示范围是 (4) 。

(A) 0~255 (B) —127~128

(C) —128~127 (D) —256~255

5. 汇编源程序中,END伪指令后的标号表示 (5) 。

(A)源程序的结束(B) 代码段的结束

(C)汇编程序的入口地址(D)该标号无任何意义

6. 设(SS)=3000H,(SP)=1000H,(AX)=1234H,执行PUSH AX后,存放34H的存储单元的物理地址是 (6) 。

(A)31001H (B)31002H (C)30FFEH (D)30FFFH

7. 将累加器AX的内容清0的错误指令是 (7) 。

(A)AND AX,0 (B)OR AX,AX

(C)SUB AX,AX (D)XOR AX,AX

8. 不影响堆栈指针SP的指令是 (8) 。

(A)INT 21H (B) JMP DO (C) RET (D)PUSH AX

9. 设机器字长为8位,—63的补码用十六进制数表示是 (9) 。

(A) 0C1H (B)3FH (C) 0BFH (D)41H

10. 指令ADD AX,1与指令INC AX的区别是 (10) 。

(A)没有区别(B)前者会将CF也加进来

(C)前者不影响CF (D)后者不影响CF

(1)D (2) A (3) D (4)C (5)C

(6)C (7)B (8)B (9) A (10)D

填空题

1、计算机中的指令由(1) 和(2) 两部分组成。

2、指出下列指令源操作数的寻址方式:

MOV AX,ARRAY[SI] ;(3)

MOV AX,ES:[BX] ;(4)

MOV AX,[200H] ;(5)

MOV AX,[BX+DI] ;(6)

MOV AX,BX ;(7)

MOV AX,1200H ;(8)

MOV AX,20[BX+SI] ;(9)

MOV AX,[DI+20] ;(10)

3、条件码中最主要的是(11) 。

4、对于乘法、除法指令,结果存放在(12) 或 (13) 中,

而其源操作数可以用除(14) 以外的任一种寻址方式。5、当指令“SUB AX,BX”执行后,CF=1,说明最高有效位

(15) ;对 (16) 数,说明操作结果溢出。

6、下面两个语句的区别在于(17) 、 (18) 。 X1 EQU 1000H

X2=1000H

7、指令“AND AX,STR1 AND STR2”中,STR1和STR2是两个已

赋值的变量,两个AND的区别是 (19) 、(20) 。

8、如果TABLE为数据段中0032单元的符号名,其中存放的内容

为1234H,当执行指令MOV AX,TABLE后,(AX)= (21) ;

而执行指令LEA AX,TABLE后,则(AX)= (22) 。

9、近过程(NEAR)的RET指令把当前栈顶的一个字弹出到

(23) ;远过程(FAR)的RET指令弹出一个字到(24) 后

又弹出一个字到 (25) ;IRET指令是(26) 指令,它

从堆栈顺序弹出3个字分别送到(27) 、 (28) 、(29) 中。

10、(30) 是过程定义结束伪指令,与(31) 配套使用。(32)

是段定义结束伪指令,与(33) 配套使用。(34) 是一个源

模块汇编结束伪指令。

12、执行下列指令序列后,完成的功能是将(DX,AX)的值 (41) 。

MOV CL,04

SHL DX,CL

MOV BL,AH

SHL AX,CL

SHR BL,CL

OR DL,BL

13、某程序的数据段定义如下,请填写完整。

DATA SEGMENT

TAB DB ‘MICROSOFT’

DB ‘MS-DOS 6.22’

DW 1234

DB ‘IBM PS/2’

TABLE EQU (42) ;数据长度

DATA ENDS

14、分析以下程序段:

ADD AX,BX

JNO L1

JNC L2

SUB AX,BX

JNC L3

JNO L4

JMP SHORT L5

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

AX BX

(1)147B 80DC

(2)B568 54B7

(3)42C8 608D

(4)D023 9FD0

(5)94B7 B568

该程序执行后,程序转向(43)、 (44)、(45)、(46)、(47)、。

15、指令CALL可分为(48)、(49)、(50)、(51)。

16、带符号的机器数可以用原码、反码和补码三种不同码制来

表示,其中补码表示法最为常见。

17、对于二进制10010101,若将其看作是无符号数和补码表示

的有符号数,它对应的十进制真值分别为149和-107。

18、ASCII码是IBM-PC输入输出时采用的编码,ASCII的中文

意思是美国信息交换标准代码,标准的ASCII码用8位二进制

数来表示。

19、用指令的助记符、符号地址、标号和伪指令、宏指令等书

写的程序称为汇编语言,将汇编语言的源程序翻译成机器语言

的程序为汇编程序。

20、8086CPU由BIU(总线接口单元)和EU(执行单元)两部分构成。

21、Intel 8086CPU内部共有14个16位寄存器,有20根地址线,可直接寻址的空间为1MB,用于访问外部设备的I/O端口地

址空间为64KB。

22、查看运算结果是否溢出的寄存器是标志寄存器的OF位。

23、我们把与内存一一对应的用20位二进制数(或5位16进

制数)表示的地址称为物理地址,它的计算公式为物理地址=16*

段地址+偏移地址。

24、在段加偏移地址的寻址中,如果段寄存器为CS,则相应的

偏移地址应由IP寄存器来提供。

25、8086/8088系列CPU在存储器中寻找存储单元时,逻辑地址

由段地址和偏移地址组成。

26、设(SS)=00A8H,(SP)=000CH,POP BX指令执行之后,栈顶的

物理地址是00A8EH。

27、在DEBUG上机调试程序时,存储器的地址表示为2F00:1400,

则该单元的段地址为2F00H,偏移地址为1400H,物理地址为30400H。

28、方向标志DF的作用是用来在串操作指令中控制自增和自减

的方向,用于设置或消除该标志位的指令是STD和CLD,。

29、已知:

(DS)=15F0H,(ES)=25F0H,(SS)=35F0H,(BX)=0670H,(SI)=1001H

,(DI)=0B0H,(BP)=0150H,BUF的偏移地址是0900H。

计算下列指令源操作数的物理地址,指出寻址方式:

(1) MOV AX,BUF[BP+6]

采用寄存器相对寻址方式,物理地址为56956h 。

(2) CMP AX,ES:[SI]

采用寄存器间接寻址方式,物理地址为 26F01H 。

(3) MOV CX,BUF

采用直接寻址方式,物理地址为 16800H 。

(4) MOV AX,ES:[BX+SI]

采用基址变址寻址方式,物理地址为 27571H 。

(5) DEC BUF[DI]

采用寄存器相对寻址方式,物理地址为 168B0H 。

(6) MOV AX,BUF[BX+DI]

采用相对基址变址寻址方式,物理地址为 16620H 。

30、指令中用来指出指令在程序中位置的符号地址是。

31、变量和标号的三个属性为段属性、偏移属性、类型属性。

通常的汇编语言开发环境都包含四部分,它们分别是编辑器、

汇编程序、连接程序和调试程序。

32、在指令系统中,段内段间的返回指令均为RET。当执行段内

返回RET指令时,执行的操作是从栈顶弹出一个字内容,送入IP;当执行段间返回RET指令时,执行的操作是从栈顶弹出两

个字内容,分别送入IP和CS。

33、使用DOS功能调用终止当前程序返回DOS 应选用的指令是MOV AH,4CH

INT 21H。

34、在使用串操作指令时,源串必须在数据段中,目的串必须

在附加段中,源串作数和目的操作数不允许使用段超越。

35、CPU是通过I/O指令来实现与外部设备进行数据传送的。

36、内中断有三类中断源,分别为INT n、CPU出错、为调试程

序设置的断点。

37、中断过程可分为四个步骤:中断请求、中断响应、中断处理、中断返回。

38、执行IRET指令时,会依次将IP、CS、FLAGS弹出栈。

39、80X86中断命令寄存器的I/O端口地址为20H,中断屏蔽寄

存器的I/O端口地址为21H。

40、可用DOS功能调用的功能号为AH=25H来设置中断向量,用

功能号AH=35H来获取中断向量。

(1)操作码字段(2)操作数字段(3)寄存器相对寻址方式(4)寄存器间接寻址方式(5)直接寻址方式(6)基址变址寻址方

式(7)寄存器寻址方式(8)立即寻址方式(9)相对基址变址

寻址方式(10)寄存器相对寻址方式(11)CF、ZF、SF、OF。(12)AX(13)DX、AX(14)立即数(15)向高位无进位或

有借位(16)无符号数(17)X1不能多次被赋值(18)X2可

以多次赋值(19)第一个AND是逻辑与(20)第二个AND是

逻辑与操作符。(21)1234H(22)0032H(23)IP;(24)IP(25)CS(26)中断返回(27)IP(28)CS(29)标志寄存器FLAGS (30)ENDP(31)PROC(32)ENDS(33)SEGMENT(34)END (41)左移4位(42)$-TAB (43)L1(44)L1(45)

L2(46)L3(47)L4(48)段内直接调用(49)段内间接调用(50)段间直接调用(51)段间间接调用。

1、在标准子程序中,它所使用的工作寄存器一般要存入⑴ 保

存,在返回调用程序之前,再⑵ 它们的内容。

2、假设(DS)=B000H,(BX)=080AH,(0B080AH)=05AEH,

(0B08CH)=4000H,当执行指令LES DI,[BX]后,(DI)=⑶ ,ES)=⑷。

3、对于指令XCHG BX,[BP+SI],如果指令执行前,(BX)=6F30H,

(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,

则指令执行后:(BX)= ⑸ ,(2F246H)= ⑹ 。

4、对于指令:MOV BX,((PORT_VAL LT 5) AND 20) OR ((PORT_VAL

GE 5 ) AND 30)则当PORT_VAL<5时,汇编结果为:MOV BX,⑺ 否则,汇编结果为:MOV BX,⑻

5、一个有16个字的数据区,它的起始地址为70A0:DDF6,那

么该数据区的最后一个字单元的物理地址为⑼ 。

6、在数据段中有以下定义:

ARRAY1 EQU 16H

ARRAY2 DW 16H

请指出下列指令的寻址方式:

MOV AX,ARRAY1 ;⑽

MOV AX,ARRAY2 ;⑾

7、现有(DS)=2000H,(BX)=100H,(SI)=0002H,(20100H)

=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,下列

指令执行后填入AX寄存器的内容:

MOV AX,1200H ;(AX)= ⑿

MOV AX,BX ;(AX)= ⒀

MOV AX,[1200H] ;(AX)= ⒁

MOV AX,[BX] ;(AX)= ⒂

MOV AX,1100[BX] ;(AX)= ⒃

MOV AX,[BX][SI] ;(AX)= ⒄

MOV AX,1100[BX+SI} ;(AX)= ⒅

8、下面两条指令执行后:

MOV AH,10H

MOV AL,10

(AH)= ⒆ ,(AL)= ⒇ 。

9、在汇编语言中,一个过程有NEAR和FAR两种属性。NEAR属

性表明主程序和子程序(21),FAR属性表示主程序和子程序(22)。

10、指令SAR可用来(23)除2,而指令SHR则可用来(24)除2。

11、子程序又称为(25),由伪操作(26)定义,由(27)结束,属性可以是(28)或(29)。

13、假设(DS)=2000H,(BX)=1256H,(SI)=528FH,位移量

TABLE=20A1H,(232F7H)=3280H,(264E5H)=2450H,则执行下列指令后(IP)的值:

JMP BX ;(IP)= (36)

JMP TABLE[BX] ;(IP)= (37)

JMP [BX][SI] ;(IP)= (38)

14、在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中偏移量分别为30H,6CH,0B8H,则转向地址LAB的值分别为(39)、(40)、(41)。

1、堆栈

2、恢复

3、05AEH

4、4000H

5、4154H

6、6F30H

7、20

8、30

9、7E814H10、立即寻址方式11、直接寻址方式12、1200H 13、0100H 14、4C2AH 15、3412H 16、4C2AH 17、7856H 18、65B7H 19、00010000B,即10H 20、(AL)=00001010B,即0AH 21、在同一代码段中22、不在同一代码段中23、对带符号数24、对无符号数25、过程26、PROC 27、ENDP 28、NEAR 29、FAR 36、1256H 37、3280H 38、2450H 39、1032H 40、106EH 41、10BAH

1、计算机内表示机器数的常用码制表示法有

⑴、、。

2、汇编语言是一种⑵,它用⑶来表示操作码,用⑷或⑸来表示操作数或操作数地址,它于⑹是一一对应的。

3、在程序运行过程中,IP始终指向⑺,它与⑻。

4、外部设备与主机的通信是通过外设接口进行的,接口寄存器根据用途可以分为⑼,⑽,⑾。

5、指令中所用到的操作数可以是⑿、⒀和⒁操作数。

6、条件转移指令分为⒂、⒃、⒄、⒅。

8、试根据以下要求写出相应的汇编语言指令。

①用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。汇编语言指令:(21) 。

②用BX寄存器和位移量0B2H的寄存器相对寻址方式把寄存器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。汇编语言指令:(22) 。

9、在执行XLAT指令时,要将表首址存放在(23) 中,将偏移地址存放在(24) 。

10、若被乘数存放在AX中,乘数存放在BX中,执行指令IMUL BX后,其乘积存放在(25) 中。

11、可用DOS功能调用INT 21H的功能号= (26) 来设置中断向量,用功能号AH= (27) 来获取中断向量。

12、下面两个语句的区别在于(28) 。

X1 EQU 1000H

X2=1000H

13、指令只可存放在(29) 段中。

14、宏定义体包括实现子功能的指令和伪操作,如果宏定义体中有一个或多个标号,则必须用(30) 伪操作列出所有的标号。

(1)原码、补码、反码;

(2)符号语言;(3)助记符;(4)符号;

(5)符号地址;(6)机器指令;

(7)下一条要执行指令的首地址;

(8)CS寄存器组合形成20位的物理地址;

(9)控制寄存器;(10)状态寄存器;

(11)数据寄存器;(12)寄存器;

(13)存储器;(14)立即数;

(15)根据单个条件标志的转移;

(16)比较两个无符号数,并根据结果转移;

(17)比较两个有符号数,并根据结果转移;

(18)测试CX的值为0则转移;

(21)ADD AL,[BX][SI];

(22)ADD 0B52H[BX],CX;

(23)BX寄存器;(24)AL寄存器中;

(25)DX:AX;(26)25H;(27)35H;

(28)X1不能多次赋值,X2可以多次赋值;

(29)代码;(30)LOCAL;

1、汇编语言指令通常由两部分组成。前面一部分指出计算机

所要执行的操作,称为⑴部分,后一部分指出指令所加工处理的对象,称为⑵部分。

2、数据寄存器包括⑶四个通用寄存器,但它们又有各

自的专门用途,其中,⑷可用作累加器,⑸可用作基址寄存器,⑹可用作循环和串处理中的隐含计数器,⑺在某些I/O操作中,可用来存放I/O 端口地址。

3、8086/8088CPU的I/O空间可有⑻个端口地址,端口地

址的范围是⑼。

4、在基址变址寻址方式中,可用于基址的寄存器是

(10)、(11);其中(12)默认是相对于SS段寻址的。

5、PC机I/O设备的数据传送方式共有三种,分别是

(13),(14),(15)。

6、当键盘中断发生时,CPU能否响应由两个条件控制,一是

(16);(17)。

13、条件转移指令的目标地址应在本条件转移指令的下一条指令地址的(26)个字节范围内。

14、假设(SP)=0100H,(SS)=2000H,执行PUSH BP指令后,栈顶的物理地址是(27)。

20、PC机BIOS显示的中断类型号为10H,它在中断向量表中的物理地址为(28)。

23、过程的属性有(29)和(30)。

(1)操作码,(2)操作数,(3)AX,BX,CX,DX,(4)AX,(5)BX,(6)CX,(7)DX,(8)64K,(9)0000H~0FFFFH,(10)BX、(11)BP,(12)BP,(13)查询,(14)中断,(15)DMA,(16)中断是否允许,(17)当前中断级别是否比键盘中断级别高,(26)-128~127,(27)200FEH,(28)00040H,(29)NEAR,(30)FAR。

1.假设某程序执行前(CS)=0B234H,(IP)=5678H,则该

程序的第一条指令的物理地址是 (1) ,若第一条指令对

应的机器码占3个字节,则第二条指令的物理地址是

(2) 。

2.设有如下数据定义:

V1 DW 30 DUP(?)

V2 DB ‘XYZ’

则分别执行MOV AX, SIZE V1和MOV AX, LENGTH V2后,AX的值分别是 (7) 和 (8) 。

3.带重复前缀的串操作指令在执行之前,除了初始化循环记

数器CX外,还应做 (9) 、 (10) 、 (11) 三项

准备工作。

4.若物理地址为0003CH的单元开始存放的双字为

10002000H,00060H单元开始存放的双字为为30004000H,则类型为15(十进制数)的中断向量的起始地址为

(12) ,中断服务程序的入口地址(物理地址)为

(13) 。

5.在用MASM 5.0的DEBUG调试程序时,查看存储单元内容的

命令为 (14) ,让程序从当前位置执行到指定位置的命

令是 (15) 。

6.I/O设备的接口中一般包含 (16) 、 (17) 、

(18) 三种端口。

7.对于DOS系统功能调用(INT 21H),所有的功能号必须放在 (19) 中,若要输出一个字符串到显示器,则字符串的首地址应放在 (20) 中。

1. 0B79B8H 0B79BBH

2. 60 1

3. SI指向源串首地址DI指向目的串首地址设置DF

4. 3CH或60 12000H

5. D G

6. 数据状态控制

7. AH DX

1、XLAT称作 (9) 指令,该指令在执行之前,应做(10) 、(11) 两项准备工作。

2、若物理地址为00038H的单元开始存放的双字为20001000H,

00056H单元开始存放的双字为40003000H,则类型为14(十进制数)的中断向量的起始地址为 (12) ,中断服务程序的入口地址(物理地址)为 (13) 。

3、在用MASM 5.0的DEBUG调试程序时,查看寄存器内容的命

令为 (14) ,让程序仅执行当前IP所指的一条指令的命令是 (15) 。

4、对于DOS系统功能调用(INT 21H),所有的功能号必须放

在 (19) 中,当要输出一个字符到显示器时,该字

符的ASCII码应存放在 (20) 中。

1. 查表或换码或翻译待查存储单元相对于表首地址的位移量存入AL

待查表首地址存入BX

2. 38H或56 21000H

3. R T

4. AH DL

1.汇编程序中的名字项可以分为(1) 和 (2),它们都有 (3)、(4) 和类型三种属性。

3.汇编语言的语句分成 (13) 、 (14) 和宏指令三类。

4.计算机的指令由 (15) 和 (16) 构成,它们分别给出计算机(17) 和 (18) 。

5.8088/8086CPU的存储器采用分段方式管理,每个段最多可以有 (19) 字节,全部存储空间可以分成 (20) 个大小为64K且互相不重叠的段。

1. (1)变量(2)标号(3)段地址(4) 偏移地址

3. (13)指令(14) 伪指令

4. (15)操作码(16)操作数(17) 要执行的操作(18) 操作的对象

5. (19) 216(20) 16

2、I/O接口中包含 (5) 、 (6) 、 (7) 三种端口。8086最多支持 (8) 个端口,每个端口可存放 (9) 位数据。当端口号大于 (10) 时,要用 (11) 存放端口号。若数据由外部设备送至CPU,则使用的是 (12) 指令。

3、编写完汇编语言源程序后,一般要经过 (13) 、连接、 (14) 三个步骤,才能验证程序的正确性。

4、8086中包含一些具有特殊用途的寄存器,其中 (15) 存放着下一条即将执行的指令的偏移地址, (16) 是堆栈指针寄存器, (17) 常用作循环的计数器, (18) 用来存放数据段的首地址。

5、8086CPU由 (19) 和 (20) 两个部分构成。

2. (5)数据(6)状态(7)控制(8)64K (9)8 (10)255 (11)DX (12)IN

3. (13)编译/汇编(14) 调试

4. (15)IP (16)SP (17) CX (18) DS

5. (19) 执行部件(20) 总线接口部件

判断题

1、JMP SHORT NEXT是近跳转。(⑴ )

2、段内转移要改变IP、CS的值。(⑵ )

3、条件转移指令只能使用段内直接短跳转。(⑶ )

4、立即寻址方式不能用于目的操作数。(⑷ )

5、不能给段寄存器进行立即数方式赋值。(⑸ )

6、JMP [CX],BYTE PTR STR+1。(⑹ )

7、MOV DI,OFFSET [BX][SI]。(⑺ )OFFSET Variable或label;offset后面只能跟变量名或标号

8、LEA DI,[BX][SI];(⑻ )

9、PUSH AL;(⑼ )

10、SHL AX,3;(⑽ )

11、MUL AX,BX;(⑾ )

12、LEA DS,35[DI];(⑿ )非法使用段寄存器

13、MOV STR[BX][DI],ES:AX;(⒀ )

14、MOV [BX][BP],AX;(⒁ )

15、ADD AX,ACH;(⒂ )

1(F)2(F)3(T)4(T)5(T)6(F)7(F)8(T)9(F)10(F)11(F)12(F)13(F)14(F)15(F)

1、MOV指令会影响标志位。(⑴ )

2、SP的内容可以不指向堆栈的栈顶。(⑵ )

3、CF位可以用来表示无符号数溢出,OF位可以用来表示有符号数溢出。(⑶ )

4、DIV SRC执行字节除法时,商存放在(AL)中,而余数存放在(AH)中。(⑷ )

5、LODSB指令执行的操作为:((DI))←(AL),(DI)←(DI)+1或(DI)←(DI)-1。(⑸ )

6、关系操作符EQ、NE、LT、GT、LE、GE的计算结果为逻辑值,0FFFFH表示为真,0表示为假。(⑹ )

7、逻辑操作符AND、OR XOR和NOT,只能用于数字表达式。(⑺ )

8、MOV CS,BX;(⑻ )

9、POP CS;(⑼ )

10、PUSH WORD PTR 20[BX+SI-2];(⑽ )

11、LEA BX,4[BX];(⑾)

12、JMP BYTE PTR [SI];(⑿ )

13、MOV BYTE PTR [BX],1000;(⒀ )

14、MOV AX,[SI][DI];(⒁)

15、MOV SAVE_WORD,DS;(⒂ )

1、F

2、F

3、T

4、T

5、F

6、T

7、T

8、F

9、F 10、T 11、T 12、F 13、F 14、F 15、T

1、JMP SHORT lab是近跳转。(⑴ )

2、段内转移要改变IP、CS的值。(⑵ )

3、条件转移指令只能使用段内直接短跳转。(⑶ )

4、立即寻址方式不能用于目的操作数。(⑷ )

5、不能给段寄存器进行立即数方式赋值。(⑸ )

6、MOV [CX],BYTE PTR STR+1。(⑹ )

7、MOV DI,OFFSET [BX][SI]。(⑺ )

8、LEA DI,[BX][SI];(⑻ )

10、SHL AX,3;(⑽ )

11、MUL AX,BX;(⑾ )

12、LEA DS,35[DI];(⑿ )

15、ADD AX,ACH;(⒂ )

17、CF位可以用来表示无符号数溢出,OF位可以用来表示有符号数溢出。(⒄)

20、关系操作符EQ、NE、LT、GT、LE、GE的计算结果为逻辑值,0FFFFH表示为真,0表示为假。(⒇)

⑴F ⑵F ⑶T ⑷T ⑸T ⑹F ⑺F ⑻T⑽F ⑾F ⑿F ⒂F ⒄F ⒇F

1、POP CS

2、JMP BYTE PTR[BX]

3、ADD BX,OFFSET A ;A为DB定义的变量

4、IN AX,3F0H

5、MOV AX,[BX][BP]

6、MOV BYTE PTR [BX],1000

7、CMP 15,CX

8、MOV VAL[BX+4*5][DI],SP ;VAL是DW定义的变量

9、MOV AX,VAL[DX] ;VAL是DW定义的变量

10、MOV VAL,DS ;VAL是DW定义的变量

11、JLE FAR PTR LAB ;LAB是一个语句的标号

12、CALL AX

13、MOV DS,2000H

14、INC [BX]

15、ADD AX,1指令与INC AX指令都执行(AX)=(AX)+1的操作,两者完全可以相互替代。

(1F) (2F) (3T) (4F) (5F) (6F) (7F)(8T)(9F) (10T) (11F) (12T) (13F) (14F)(15F)

1、TEST AL,00000100B

2、RCR [BX+SI],CX

3、DIV 10H

4、REP MOVS ES:WORD PTR [DI],DS:[SI]

5、MOV DS,[BP+DI]

6、MOV ES,0

7、JMP DWORD PTR[BX+SI]

8、MOV CL,HIGH VAL ;VAL是DW定义的变量

9、MOV AX,WORDA中源操作数是直接寻址(WORDA是字变量符号地址)。

10、硬中断处理程序是可使用INT指令来调用执行的。

11、END LAB语句指示本程序执行到标号LAB处则结束。

13、同一个文件中不允许出现相同的子程序名。

14、定义在代码段C中的类型属性为FAR的过程只能在代码段C 之外调用。

15、ADD X,Y ;X,Y是DB定义的变量。

(1)T,(2)F,(3)F,(4)T,(5)T,(6)F,(7)T,(8)T,(9)T,(10)T,(11)F,(13)T,(14)F ,(15)F

简答题

1、8086具有哪些程序可见的寄存器,它们在程序设计中分别

起什么作用?

2、在8086/8088微处理器在实模式下,存储器寻址为什么要

分段?举例说明存储单元的物理地址是如何形成的?

3、设AX=1234H,BX=5678H,CX=8901H,SI=100H,SP的初始

值=01A0H,问执行下述堆栈操作指令序列

PUSH CX

PUSH AX

PUSH BX

……

POP CX

POP SI

后,SP和SI的值等于多少?

4、调用指令CALL可以分为哪几种?

5、解释地址传送指令“LES DX,BUF[BX][DI]”的功能?

1、具有通用寄存器、专用寄存器和段寄存器3类。通用寄存器都是16位寄存器,其中AX、BX、CX、DX可称为数据寄存器,用来暂时存放计算过程中所用到的操作数、结果或其他信息。AX一般作为累加器、BX在计算存储器地址时,经常用作基址寄存器。CX常用来保存计数值。DX一般在作双字长运算时和AX寄存器组合在一起存放双字长数,DX用来存放高位字,对某些I/O操作,DX可用来存放I/O的端口地址。SP、BP、SI、DI四个16位寄存器可以象数据寄存器一样在运算过程中存放操作数,此外它们经常用在存储器寻址时,提供偏移地址。SP 作为堆栈指针寄存器、BP作为基址指针寄存器、SI作为源变址寄存器、DI作为目的变址寄存器;专用寄存器:IP为指令指针寄存器,始终指向下一条指令的首地址。FLAGS为标志寄存器,用来存放条件码、控制标志和系统标志寄存器。

2、在8086/8088中,寄存器只有16位,而地址线却有20位,故其最大寻址空间是1M。用存储器分段的方法,解决在16位字长的机器里提供20位地址的问题。在实模式下编程时,将存储器划分成段,每个段内的大小可达64KB,这样段内地址可用16位表示,实际上,可以根据需要决定段的大小。这样将每一段的起始地址作为段地址,而将在段内相对于段起始地址的偏移值作为偏移地址,于是将段地址左移4位,再加上偏移地址就形成了存储器实际的物理地址。如某存储单元的段地址和偏移地址为3017:000A,则其物理地址=3017H*10H+000AH=3017AH。

3、SP和SI的值分别等于19EH和1234H。

4、调用指令CALL可分为段内直接调用、段内间接调用、段间直接调用、段间间接调用。

5、将有效地址为BUF+[BX]+[DI]字存储单元的内容送DX寄存器,然后将有效地址为BUF+[BX]+[DI]+2的字存储单元的内容送ES寄存器。

6、8086CPU是由EU和BIG组成,各部分的功能是什么?这样设计的优点是什么?

BIU主要功能是负责CPU与主存和I/O之间的信息传递。EU的功能主要是控制和执行指令。取指和执行指令这两个步骤由两个独立的部件来完成。当EU执行某条指令时,BIU同时完成从主存中预取后继指令,两个部件并行工作,提高了指令的执行速度。

7、说明PUSH BX指令的执行过程,假设SP=0100H,SS=0200H,确切地指出BH和BL存储在哪里?

PUSH BX指令执行后,SP=SP-2,BH和BL分别存放在099H和098H 中,SP指向098H单元

8、简述指令MOV BX,DATA和MOV BX,OFFSET DATA之间的区别?

9、强制属性操作符会改变变量的定义属性吗?

不会,它们只是临时改变变量的属性。

10、简述数值表达式和地址表达式的主要区别?

数值表达式和地址表达式都可以用于算术运算中,数值表达式对任何运算都有意义,而地址表达式要看运算的物理意义,如地址表达式的香煎有意义,而相加就没有意义了。

10、编写分支程序一般要用一些指令设置相关标志位,然后进行条件判断,利用条件控制转移指令控制程序转移,通常可以用那些指令来设置标志位?这些指令有什么特点?

答:在使用条件转移指令前,通常是由一些算术运算、逻辑运算或某些比较、测试指令的执行结果设置相关标志位,这些指令的特点是可以影响某些标志位。

11、子程序返回指令“RET 6”的功能是什么?通常在什么情况下要用到带立即数的子程序返回?

答:在返回断点后,再从堆栈弹出6个字节的数据。立即数通常是偶数,主要用于通过堆栈传递参数时去掉堆栈中一些无用的数据。

12、在程序模块中,伪指令PUBLIC和EXTRN的作用是什么?答:在模块化程序设计中,PUBLIC用来声明公共变量,EXTRN

用来声明引用的外部变量。

13、简述宏和子程序的区别和联系?

答:联系:(1)都可以将程序中的程序段定义成一个能用过程名或宏名表示的实体。(2)都用一个名字调用。(3)都可以带参数。

区别:(1)宏在调用时进行宏展开,其代码实体的重复次数与宏调用次数有关;子程序的代码实体在程序中只出现一次。(2)宏调用不会增加CALL、RET指令,子程序的调用则需要。(3)宏的执行效率高;子程序占用空间相对少。

14、局部符号伪指令LOCAL有何作用?其使用有什么要求?答:程序中用LOCAL伪指令是为了避免同一变量名或标号多次被宏调用时,产生多个相同的变量名或标号,出现汇编错误。LOCAL伪指令只能用在宏定义体中,必须是MACRO伪指令后的第一个语句。

15、何谓宏定义、宏调用、宏扩展、宏嵌套?在宏定义嵌套情况下,怎样实现调用内层宏定义?

16、宏定义中的标号或变量如何处理?

1 外设与CPU和存储器的通信是通过外设接口进行的,每个外设接口包含哪些寄存器,以及这些寄存器的用途?

2 在IBM-PC机中,有哪4个专门存放段地址的寄存器、并分别指出这些段寄存器的用途?

3 标志寄存器有哪些标志位、并分别指明这些标志位的作用?

4下列操作可使用哪些寄存器?

⑴加法和减法

⑵循环计数

⑶乘法和除法

⑷将要执行的指令地址

⑸表示运算结果为0

1、每个外设接口通常包含以下三种寄存器:一是用作数据缓冲的数据寄存器;二是用作保存设备和接口的状态信息,供CPU 对外设进行测试的状态寄存器;三是用来保存CPU发出的命令以控制接口和设备的操作的命令控制寄存器。

2、有代码段寄存器CS——用来存放代码段的起始地址;

数据段寄存器DS——用来存放数据段的起始地址;

附加段寄存器ES——用来存放附加段的起始地址;

堆栈段寄存器SS——用来存放堆栈段的起始地址。

3、有溢出标志OF,在运算过程中,如操作数超出了机器所能

表示的范围则称为溢出溢出时OF 位置1,否则OF位置0;

符号标志SF,记录运算结果的符号,结果为负时,SF位置1,否则SF位置0;

零标志ZF,运算结果为0时,ZF位置1,否则ZF位置0;

进位标志CF,记录运算时从最高有效位产生的进位值。如执行加法指令时,最高有效位有进位时置1,否则置0;

辅助进位标志AF,记录运算时第三位(半个字节)产生的进位值。如执行加法指令时,第三位有进位时置1,否则置0;

奇偶标志PF,用来为机器中传送信息时可能产生的代码出错情况提供校验条件。当结果操作数中1的个数为偶数时置1,否则置0;

方向标志DF,在串处理指令中控制处理信息的方向用。当DF位为1时,每次操作后使变址寄存器SI和DI减量,这样就使串处理从高地址向低地址方向处理。当DF=0,则使SI和DI 增量,使串处理从低地址向高地址方向处理;

中断标志IF,当IF为1时,允许中断,否则关闭中断;

陷井标志TF,用于单步方式操作。当TF为1时,每条指令执行完后产生陷井,由系统控制计算机;TF为0时,CPU正常工作不产生陷井。

4、⑴加法和减法——通用寄存器;

⑵循环计数——CX

⑶乘法和除法——AX用来被乘数、被除数。乘法中,DX

用来存放乘积的高位字;除法中DX用来存放余数。

⑷将要执行的指令地址——IP寄存器。

⑸表示运算结果为0——标志寄存器的ZF位。

1.简述DOS系统功能调用方法,写出在屏幕上显示数字9的指令语句。

2.定义数据段DATA_SEG,数据段中的数据按下列要求依次存储:

(1)第一个字节是整数5

(2)变量BUF,大小为25个字节,初值为0

(3)变量ARRAY,类型为字,初值为12H,56H,78H,0AH

(4)变量MSG存储字符串’yes’

3.假设DS=2000H,BX=0100H,(20100H)=30H,(20101H)=10H 问:(1)执行MOV DX,[BX] DX=_____

⑵执行LEA DX,[BX] DX=_____

简述两条指令区别。

4、设某数据段:

DATA SEGMENT

ORG 20H

NUM1=8

NUM2=NUM1+10H

DA1 DB 'COMPUTER'

DB 0AH,0DH

COUNT EQU $-DA1

DA2 DW'CO','MP','UT','ER'

DATA ENDS

试回答:

(1)DA1的偏移地址是:___________________

(2)COUNT的值是__________________________

(3)DA2+5字节单元的内容是________________

1、mov dl,9

add dl,48

mov ah,2

int 21h 2、data_seg segments

a d

b 5

buf db 25 dup(0)

array dw 12h,56h,78h,0ah

msg db ‘yes’

data ends

3、(1) 1030 (2)0100

4、(1) 20h (2)10 (3)U

5、分别用伪指令IRP和IRPC实现将AX、BX、CX、DX压栈。

用IRP

IRP REL

PUSH REL

ENDM

用IRPC

IRPC M,ABCD

PUSH M&X

ENDM

6、编一宏指令完成显示数据段中的一个字符串的功能。

DISP MACRO STRSN

PUSH DX

PUSH AX

LEA DX,STRSN

MOV AH,9

INT 21H

POP AX

POP DX

ENDM

7、用宏指令实现代码段初始化。

BEGA MACRO CSNE,DSNE, ESNE

ASSUME CS:CSNE,DS:DSNE, ES:ESNE

MOV AX,DSNE

MOV DS,AX

MOV AX,ESNE

MOV ES,AX

ENDM

2、设AX=1234H,BX=5678H,CX=8901H,SI=100H,SP的初始值=01A0H,问执行下述堆栈操作指令序列

PUSH CX

PUSH AX

PUSH BX

……

POP CX

POP SI

后,SP和SI的值等于多少?

答SP和SI的值分别等于19EH和1234H。

1、简述汇编语言从源程序的建立到运行可执行程序的主要步骤。

2、请指出下列操作中可使用哪些寄存器。

⑴存放各种运算操作的数据。

⑵存放数据串操作时的计数值。

⑶查看程序已执行到哪条指令的地址。

⑷查看运算结果是否等于0。

3、简述REPNE MOSW指令的执行步骤。

4、指令和伪指令的区别是什么?

5、简述8086CPU的中断响应过程。

1简述汇编语言从源程序的建立到运行可执行程序的主要步骤。答:⑴用编辑程序建立汇ASM编语言源程序;

⑵用汇编语言对源程序进行汇编,把ASM文件转化成OBJ 文件;

⑶用连接程序对目标文件进行连接,把OBJ文件转换成EXE 文件;

⑷用DOS命令直接键入文件名即可执行。

2请指出下列操作中可使用哪些寄存器。

⑴存放各种运算操作的数据。

⑵存放数据串操作时的计数值。

⑶查看程序已执行到哪条指令的地址。

⑷查看运算结果是否等于0。

答:⑴AX,BX,CX,DX,SI,DI,SP,BP。

⑵CX。

⑶IP。

⑷PSW(标志寄存器)的ZF位。

3简述REPNE MOVSW指令的执行步骤。

答:略。

4指令和伪指令的区别是什么?

答:指令是在程序执行期间由计算机来执行的,而伪指令(伪操作)是在汇编程序对源程序进行汇编时处理的操作,完成诸如数据定义、存储器分配、指示程序开始结束等功能。

5简述8086CPU的中断响应过程。

答:⑴取中断类型号N;

⑵标志寄存器内容入栈;

⑶当前代码段寄存器CS内容入栈;

⑷当前指令计数器IP入栈

⑸禁止硬件中断和单步中断(IF=0,TF=0);

⑹从中断向量表中取4×N的字节内容送IP,取4×N+2中的字节内容送CS;

⑺转中段处理程序。

1、什么叫汇编语言?

2、一个字在存储器中是如何存放的?

3、简述REPNZ CMPSB指令的执行过程。

4、什么是中断向量?中断向量表的作用是什么?

5、使用21H中断的功能A输入字符串时应注意些什么?

什么叫汇编语言?

答:是一种符号语言,它用助记符表示指令的操作码和操作数,用标号或符号地址代表地址、常量和变量。它与机器语言几乎是一一对应的。

2、一个字在存储器中是如何存放的?

答:一个字在存储器中占用相邻的两个存储单元,低8位存入低地址,高8位存入高地址,字单元的地址用它的低地址。

3、简述REPNZ CMPSB指令的执行过程。

答:⑴如(CX)=0或ZF=0时退出,否则往下执行。

⑵(CX)←(CX)-1

⑶DS:((SI))-ES:((DI))

⑷(SI) ←(SI)±1, (DI)←(DI)±1,若DF=0时为+,DF=1时为-

⑸重复⑴~⑷

4、什么是中断向量?中断向量表的作用是什么?

答:为了提高响应中断的速度,通常把所有中断处理程序的入口地址(或称为中断向量)汇集在中断向量表中,当CPU响应中断时,根据中断源的中断类型号,直接从中断向量表中得到相应的入口地址,并从该地址开始执行中断处理程序。

5、使用21H中断的功能A输入字符串时应注意些什么?

答:使用21H中断的功能A输入字符串时,特别要注意缓冲区的定义方法。缓冲区第一个字节保存最大字符数,这个最大字符数由用户给出。第二个字节是实际输入字符数,由功能A填入。在这两个字节之后,字符串就按字节存入缓冲区,最后一个字节是结束字符串的回车符0DH,因此整个缓冲区应定义为最大字符数(包括RETURN在内)加2。INT 21H的功能A 把实际字符数(不包括RETURN)填入缓冲区的第二个字节,保持DS:DX指向缓冲区的第一个字节。所以输入的字符串应从指针DX+2开始。

编程题

1、从键盘输入一字符串,然后将其按反序存放并输出。

DA TA SEGMENT

STRING1 DB 80,0,80 DUP(?)

STRING2 DB 80 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA,ES:DATA MAIN PROC FAR

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

LEA DX,STRING1

MOV AH,0AH

INT 21H

MOV CL,[STRING1+1]

SUB CH,CH

LEA DI, STRING2

LEA SI,STRING1

ADD SI,CX

INC SI

LAB: MOV AL,[SI]

MOV [DI],AL

INC DI

DEC SI

LOOP LAB

MOV BYTE PTR[DI],'$'

LEA DX,STRING2

MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

2、给出一百分制成绩,要求输出成绩等级

“A”,“B”,“C”,“D”,“E”。90分以上为A,80~89为B,70~79为C,60~69为D,60分以下为E。

DA TA SEGMENT

X DB 52

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

MAIN PROC FAR

START: MOV AX,DATA

MOV DS,AX

MOV AL,X

CMP AL,90

JB LAB1

MOV DL,'A'

JMP EXIT

LAB1: CMP AL,80

JB LAB2

MOV DL,'B'

JMP EXIT

LAB2: CMP AL,70

JB LAB3

MOV DL,'C'

JMP EXIT

LAB3: CMP AL,60

JB LAB4

MOV DL,'D'

JMP EXIT

LAB4: MOV DL,'E'

EXIT: MOV AH,2

INT 21H

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

3、将首地址为A的N字正整数组从小到大排序。

DATA SEGMENT

A DW 56H,85H,96H,52H,63H

DATA ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DA TA

START: PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DA TA

MOV DS,AX

MOV CX,5

DEC CX

LOOP1: MOV DI,CX

MOV BX,0

LOOP2: MOV AX,A[BX]

CMP AX,A[BX+2]

JL CON

XCHG AX,A[BX+2]

MOV A[BX],AX

CON: ADD BX,2

LOOP LOOP2

MOV CX,DI

LOOP LOOP1

RET

CSEG ENDS

END START

4、编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N。

DSEG SEGMENT

M DW 10H,20H,-20H,30H,90H,100H,-520H,-600H

DW 3654H,-52H,45H,41H,-59H,-5H,-87AH

DW -9ABH,-65H,-90H ,65H,-89H

P DW 20 DUP(?)

N DW 20 DUP(?)

DSEG ENDS

CSEG SEGMENT

MAIN PROC FAR

ASSUME CS:CSEG,DS:DSEG

START:

MOV AX,DSEG

MOV DS,AX

XOR DX,DX

LEA BX,M

LEA SI,P

LEA DI,N

MOV CX,20

XOR DL,DL

LAB1: MOV AX,[BX]

ADD BX,2

CMP AX,0

JL LAB2

INC DL

MOV [SI],AX

ADD SI,2

JMP LAB3

LAB2: MOV [DI],AX

ADD DI,2

LAB3: LOOP LAB1

MOV AH,4CH

INT 21H

MAIN ENDP

CSEG ENDS

END START

6、数据段中从TABLE开始的连续20个字节单元存放着一个字符串,编写程序,判断其中是否含有数字字符,若有,则将DX 寄存器的第四位置为1,否则置为0。(设DX的最低位为第一位)……

mov cx, 20

mov si, 0

repeat:

mov al,table[si]

cmp al, 30h

jb goon

cmp al, 39h

ja goon

or dl, 8

jmp exit

goon:

inc si

dec cx

jnz repeat

and dl, 0f7h

exit:

……

7、编写程序,将字变量VAR以十六进制数显示在显示器上。(采用子过程或非子过程实现均可)

……

mov bx, var

mov ch,4 ; 4组二进制数

rotate: mov cl,4 ; 每组4个二进制位

rol bx,cl ; 把bx循环左移4位

mov al,bl ; 暂存bl到al中

and al,0fh ; 仅保留al的低4位

add al,30h ; 转换成ASCII码

cmp al,3ah ; 要显示的数大于9 ?

jl printit ; 如果数在0~9之间则显示

add al,7h ; 数在A~F之间则调整

printit:

mov dl,al ; 把要显示字符的ASCII码送dl

mov ah,2 ; 功能号2送ah

int 21h ; DOS功能调用

dec ch ; (ch)-1

jnz rotate

……

8、统计AX中16位二进制数中0的个数,结果存入数据段中的COUNT字节变量。

……

Mov cx,0

Do: and ax, ax

Jz done

Sal ax,1

Jnc next

Inc cx

next: jmp do

Done: mov count, cx

9、编写程序完成如下功能:数据段中存放着一个字符串STR(以‘$’字符结束),统计STR中的数字字符个数,并将统计结果存入DL。

Mov dl, 0

mov si, 0

repeat:

mov al,str[si]

cmp al, …$?

jz exit

cmp al, 30h

jb goon

cmp al, 39h

ja goon

inc dl

goon:

inc si

jmp repeat

exit:

……

10、设有三个数x,y和z,如果其中一个为0,将另外两个也清零,否则求它们的和,存入mem单元中。

data segment

x db 12

y db 0

z db 8

mem db ?

data ends

code segment

assume cs:code,ds:data

main proc far

start:

mov ax,data

mov ds,ax

mov al,x

cmp al,0

jz lab1

cmp y,0

jz lab1

Cmp z,0

jz lab1

add al,y

add al,z

mov mem,al

jmp exit

lab1: mov x,0

mov y,0

mov z,0

exit: mov ah,4ch

int 21h

main endp

code ends

end start

11、在一个无符号字数组ARRAY中查找最大数,并将其存入字变量M中。

data segment

array dw 1234h,43h,3dfeh,9f1h,34h

dw 99h,12abh,0f000h,23h,0edfh

m dw ?

data ends

code segment

assume cs:code,ds:data

main proc far

start:

mov ax,data

mov ds,ax

mov cx,(max1-array)/2-1

lea bx,array

mov ax,[bx]

lab1: inc bx

inc bx

cmp ax,[bx]

ja lab2

mov ax,[bx]

lab2: loop lab1

mov m,ax

exit: mov ah,4ch

int 21h

main endp

code ends

end start

12、将数据段中已定义的字符串STR中所有的小写字母转换为大写。

DATA SEGMENT

STR DB …AbCdefGH?

LEN DB $-STR

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DA TA

START: MOV AX, DA TA

MOV DS, AX

MOV CH, 0

MOV CL, LEN

MOV BX, OFFSET STR

DO: CMP [BX],?a?

JB LOP

CMP [BX], …z?

JA LOP

SUB BYTE PTR[BX], 32

LOP: INC BX

LOOP DO

HLT

CODE ENDS

END START

13、编写程序,完成下面公式的计算(其中变量x和y是32位

有符号数,变量a、b和z是16位有符号数)

DATA SEGMENT

X DD 65432H

Y DD 12345H

A DW ?

B DW ?

Z DW 34H

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,WORD PTR X

MOV BX,WORD PTR Y

MOV DX,WORD PTR X+2

MOV CX,WORD PTR Y+2

SUB AX,BX

SBB DX,CX

ADD AX,24

ADC DX,0

IDIV Z

MOV A,AX

MOV B,DX

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

14、编写程序,实现将数据段BUFF开始的字节单元中的10个数

字0,1,2,3,4,5,6,7,8,9转化成相应的ASCII码送入以ASC开始的内存单元。

DATA SEGMENT

BUFF DB 0,1,2,3,4,5,6,7,8,9

CONT EQU $-BUFF

ASC DB 10 DUP(?)

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA MOV DS,AX

SUB SI,SI

MOV CX,CONT

LOP: MOV AL,BUFF[SI]

OR AL,30H

MOV ASC[SI],AL

INC SI

LOOP LOP

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

15、设有单字节无符号数X,Y,Z,若X+Y>200,则求X+Z,否则求

X-Z,运算结果放在SUM1单元中.(X,Y,Z,SUM1均为字节变量名)

DATA SEGMENT

X DB 200

Y DB 123

Z DB 21

SUM1 DB ?

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AL,Y

MOV DL,X

ADD AL,DL

CMP AL,200

JA LAB1

SUB DL,Z

JMP LAB2

LAB1: ADD DL,Z

LAB2: MOV SUM1,DL

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

16、从键盘上读入一字符串(长度小于40),将该串反转后,输

出显示。

MAXNO EQU 41

DATA SEGMENT

MESSG1 DB 'INPUT A STRING:$'

MESSG2 DB 'IT IS REVERSE IS:$'

MESSG3 DB 0AH,0DH,'$'

BUF DB MAXNO,?,MAXNO DUP(?)

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA DX,MESSG1

MOV AH,9

INT 21H

LEA DX,BUF

MOV AH,0AH

INT 21H

LEA DX,MESSG3

MOV AH,9

INT 21H

XOR AX,AX

MOV CL,BUF+1

SUB CH,CH

LEA DI,BUF+2

MOV SI,DI

ADD SI,CX

MOV BYTE PTR[SI],'$'

DEC SI

CONT: CMP DI,SI

JZ FINISHD

MOV AL,[SI]

XCHG AL,[DI]

MOV [SI],AL

DEC SI

INC DI

JMP CONT

FINISHD: LEA DX,MESSG2

MOV AH,9

INT 21H

LEA DX,BUF+2

MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

阅读程序题

1. 写出下列程序执行后STR2的内容。

DATA SEGMENT

STR1 DB ‘HELLO,AUTS!’

COUNT EQU $-STR1

STR2 DB COUNT DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

GO:MOV AX, DATA

MOV DS, AX

MOV CX, COUNT

LEA SI, STR1

LEA DI, STR2

DO:MOV AL, [SI]

MOV [DI],AL

INC SI

INC DI

LOOP DO

MOV AH, 4CH

INT 21H

CODE ENDS

END GO

2.设(AX)=7EA2H,写出下列指令单独执行后,AX的值。(各指令间彼此无关,结果用16进制数表示)

① XOR AX, 97H

② AND AX, 97H

③ OR AX, 97H

④ NOT AX

⑤ TEST AX, 97H

1. ‘HELLO, AUTS!’

2. ①7E35H

②0082H

③7EB7H

④815DH

⑤7EA2H

2. 设(AX)=2AE7,写出下列指令单独执行后,AX的值。(各指令间彼此无关,结果用16进制数表示)

① XOR AX, 79H

② AND AX, 79H

③ OR AX, 79H

④ NOT AX

⑤ TEST AX, 79H

2. ①2A9EH

②0061H

③2AFFH

④0D518H

⑤2AE7H

1. 下列程序段的运行后寄存器AL= 。

MOV AL,0

MOV BL,0

MOV CX,4

L1: INC BL

INC BL

ADD AL,BL

LOOP L1

HLT

2.下列程序的运行结果是。

data segment

buf db ‘I am the first line’,0dh,0ah

db ‘I am the second line’,‘$’data ends

code segment

assume cs:code,ds:data

main proc far

start: mov ax,data

mov ds,ax

lea dx,buf

mov ah,9

int 21h

mov ah,4ch

int 21h

main endp

code ends

end start

1. 20

2. I am the first line

I am the second line

1.下列程序的运行后,显示器输出。

data segment

buf db ‘Peking 2008’,0dh,0ah

db ‘Welcome you!’,0dh,0ah,‘$’

data ends

code segment

assume cs:code,ds:data

main proc far

start: mov ax,data

mov ds,ax

lea dx,buf

mov ah,9

int 21h

mov ah,4ch

int 21h

main endp

code ends

end start

2. 下列程序段的功能是_____,运行后,BL=_____、DL= 、AX=_____。

MOV AX,1234H

MOV BL, 0

MOV DL, 0

MOV CX, 16

L1: SHL AX, 1

JC L2

INC BL

JMP L3

L2: INC DL

L3: LOOP L1

HLT

1. Peking 2008

Welcome you!

2. 统计1234H对应的16位2二进制数含有0和1的个数。

BL=11,DL=5,AX=0

程序分析题

1设寄存器AX,BX,CX中的内容都是1234H,变量value中的内容为0F0FH,执行下列指令序列:

OR AX,value

AND BX,value

XOR CX,value

则AX=_____,BX=_____,CX=_____

2.MOV AL,5

ADD AL,AL

MOV BL,AL

ADD AL,AL

ADD AL,BL

上述程序段执行后,AL=_____,BL=_____,程序段的功能用数学表达式表示_____。

3. NUM DB ?

MOV AH,1

INT 21H

CMP AL,39H

JBE NEXT

SUB AL,7

NEXT:SUB AL,30H

MOV NUM,AL

上述程序段运行后,若输入’F’,则(NUM)=_____(用二进制表

示),若输入’8’,则(NUM)=_____(用二进制表示)

该程序段的功能是_____。

4.有下列数据定义

VA DB 0FFH

VB DB 1,2

VC DW 3456H

执行下列指令序列:

MOV AX,WORD PTR VB+1

MOV BL,BYTE PTR VC+1

MOV CL,VB-1

则AX=_____,BL=_____,CL=_____

1、1F3FH,0204H,1D3BH

2、1EH,0AH,(5+5)+(5+5)

3、00001111,00001000,16进制转化为2进制

4、5602H34H,0FFH

1、已知AX=0FF60H,CF=1

MOV DX,96

XOR DH,0FFH

SBB AX,DX

执行上述指令序列后,AX=_________,CF=______

2、设寄存器AL,BL,CL中内容均为76H,

XOR AL,0FH

AND BL,0FH

OR CL,0FH

执行上述指令序列后,AL=___BL=_______,CL=________

3、已知AX=0A33AH,DX=0F0F0H

AND AH,DL

XOR AL,DH

NEG AH

NOT AL

执行上述指令序列后,AH=__________,AL=________

4、DATA SEGMENT

S9 DB 0,1,2,3,4,5,6,7,8,9

DATA ENDS

LEA SI,S9

LEA DI,S9+1

MOV CX,5

LOP: MOV AL,[SI]

XCHG AL,[DI]

MOV [SI],AL

ADD SI,1

ADD DI,1

LOOP LOP

上述程序段运行后,S9开始的10个字节存储单元内容是什么?

5、MOV AL,38H

MOV BL,49H

CALL SUBO

INC AL

DEC CL

SUBO PROC

ADD AL,BL

MOV CL,AL

DAA

RET

SUBO ENDP

上述程序段运行后,AL=________,CL=__________

1、0000h,0

2、79H,06H,7FH

3. 60H,35H

4、1,2,3,4,5,0,6,7,8,9

5、88,80

1、分析下列程序段,回答指定问题:

MOV AX ,0123H

MOV BX ,.321H

PUSH AX

PUSH BX

POP AX

POP BX

请问(AX)= (1) ,(BX)= (2) 。

2、分析下面程序段,回答指定问题:

MOV CX ,DX

NOT CX

ADD CX ,DX

INC CX

请问(CX)= (3) ,(ZF)= (4) 。

3、现有程序段如下:

MOV AX,3200H

MOV BH,AH

MOV CL,4

SHL AH,CL

SHR BH,CL

OR AH,BH

请问:程序执行后(AH)= (5)

4、执行下列指令序列后,会将(DX,AX)的值 (6)

MOV CL,4

SHL DX,CL

MOV BL,AH

SHL AX,CL

SHR BL,CL

OR DL,BL

5、执行下面的程序段后,(AX)= (7) 。

ARRAY DW 10 DUP(2)

……

XOR AX,AX

MOV CX,LENGTH ARRAY

MOV SI,SIZE ARRAY - TYPE ARRAY

NEXT: ADD AX,ARRAY[SI]

SUB SI,TYPE ARRAY

LOOP NEXT

6、现有程序段如下:

LAB1: MOV AH,1

INT 21H

CALL SUB1

JC LAB1

ADD AL,’a’-‘A’

MOV DL,AL

MOV AH,2

INT 21H

SUB1 PROC

CMP AL,’A’

JB LAB2

CMP AL,’Z’

JA LAB2

CLC

RET

LAB2: STC

RET

SUB1 ENDP

请问:

①该程序段的功能是 (8) 。

②由DL寄存器输出显示的内容是 (9) 。

7、执行完下列程序后,寄存器AX,BX,CX的值分别是多少?

ORG 1221H

NUM DW 12H

……

MOV AX,NUM

MOV BX,OFFSET NUM

MOV CL,BYTE PTR NUM+1

MOV CH,BYTE PTR NUM

HLT

(10)(AX)=( )、(BX)=( )、(CX)=( )。

(1)0321H (2)0123H (3)0 (4)1 (5)23H (6)左移4位(7)20 (8)将从键盘输入的大写字母转换为小写字母,并显示输出,其它字符全部舍弃

(9)转换成小写字母的ASCII值

(10)(AX)=0012H,(BX)= 1221H,(CX)=1200H

1、现有如下程序段:

MOV AL,32H

ADD AL,2AH

SAL AL,1

HLT

当程序执行后(AL)= ⑴

2、执行下列程序后,回答指定问题:

FIND MARCO X,Y,Z

LOCAL @801,@802

MOV AX,X

CMP AX,Y

JBE @801

MOV AX,Y

@801: CMP AX,Z

JBE @802

MOV AX,Z

@802: ENDM

CODE SEGMENT

ASSUME CS:CODE

FIND 21,60,40H

HLT

CODE ENDS

请问:①该程序段的功能是⑵;

②程序执行后(AX)= ⑶。

5、当执行下列指令后,(AL)= ⑷,(DX)= ⑸。

STR1 LABEL WORD

STR2 DB 12H

DB 34H

……

MOV AL,STR2

MOV DX,STR1

6、现有数据段如下:

DATA SEGMENT

ORG 0020H

DA1 DW 12H,23H

DA2 DB 11H,21H

DA3 EQU 1234H

DA4 EQU $-DA2

DA5 DB 31H,32H

DATA ENDS

请问:①该数据段已占有的存储字节数是⑹;

②符号名DA4的值是⑺ , 符号名DA5的值(地址值)是⑻。

7、现有数据段如下:

DSEG SEGMENT

DA1 DB 10H DUP(1)

DA2 DW 10H DUP(0203H)

DSEG ENDS

……

MOV AX,0

MOV BX,AX

MOV CX,BX

DON: ADD AL,DA1[BX]

ADD AL,BYTE PTR DA2[BX]

INC BX

LOOP DON

HLT

请问程序执行过程中,当(BX)=08H时,(AL)= ⑼,(CX)= ⑽。(1)0B8H,(2)在3个无符号数中找出最小的一个数,(3)15H,(4)(AL)=12H,(DX)= (5)3412H,(6)8,(7)02H ,(8)0026H,(9)1CH,(10)0FFF9H。

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

汇编语言基础练习题目

、填空 1. 在8086/8088的计算机中,存储单元的20位物理地址由两部分组成,即16 位的 段地址 和16位的 偏移地址,物理地址=段地址X 10H+偏移量。 2. 段的起始地址必须是某小段的首地址,它能被 10H 整除。 3. 已知01020H 字单元的内容为6A58H 请分别写出它的两个字节单元的地址和 内容: (01020H =58H, ( 01021H =6AH 4. 指令执行后,若标志寄存器的ZF=0,则表示结果不为0;若SF=0,则表示结 果的符号是正号,即结果为正数。 5. 控制器从存储器取出一条指令后,指令指针寄存器IP 的内容是 将要执行的下 一条指令开始的偏移地址。 6. 段地址和偏移地址为1000: 127B 的存储单元的物理地址是1127BH 解:由物理地址=段地址X 10H+偏移量的公式可得 物理地址=1000HX 10H+127BH=10000H+127BH=1127BH 、选择 1. 与CS 寄存器组合才能形成代码段的物理地址的寄存器是 解:16K 个字单元,即为32K 个字节单元。由于2的15次方为32K,因此至 少需要15位二进制数才能表示16K 个字单元。 3. 已知一数据段的段地址是0100H,这个段的第6个字单元的物理地址是(B ) o 解:由于一个字单元占用两个字节,第一个字单元的偏移地址为 0000H,因 此第一个字单元的物理地址为 01000H 。以后每一个字单元的地址在前一个的基 C )。 A. SP 寄存器 B. BP 寄存器 C. IP 寄存器 D. BX 寄存器 2.如果存储器分段时, 的二进制数至少是( 一个段最多允许16K 个字单元,那么表示该段内偏移地址 A )o A.15 位 位 B.16 位 C.17 位 D.18 A. 01010H B. 0100AH C.01012H D.01006H

应用光学习题解答13年

一、填空题 1、光学系统中物和像具有共轭关系的原因是 。 2、发生全反射的条件是 。 3、 光学系统的三种放大率是 、 、 ,当物像空间的介质的折射率给定后,对于一对给定的共轭面,可提出 种放大率的要求。 4、 理想光学系统中,与像方焦点共轭的物点是 。 5、物镜和目镜焦距分别为mm f 2'=物和mm f 25'=目的显微镜,光学筒长△= 4mm ,则该显微镜的视放大率为 ,物镜的垂轴放大率为 ,目镜的视放大率为 。 6、 某物点发出的光经理想光学系统后对应的最后出射光束是会聚同心光束,则该物点所成的是 (填“实”或“虚”)像。 7、人眼的调节包含 调节和 调节。 8、复杂光学系统中设置场镜的目的是 。 9、要使公共垂面内的光线方向改变60度,则双平面镜夹角应为 度。 10、近轴条件下,折射率为1.4的厚为14mm 的平行玻璃板,其等效空气层厚度为 mm 。

11、设计反射棱镜时,应使其展开后玻璃板的两个表面平行,目的 是。 12、有效地提高显微镜分辨率的途径是。 13、近轴情况下,在空气中看到水中鱼的表观深度要比实际深度。 一、填空题 1、光路是可逆的 2、光从光密媒质射向光疏媒质,且入射角大于临界角I0,其中,sinI0=n2/n1。 3、垂轴放大率;角放大率;轴向放大率;一 4、轴上无穷远的物点 5、-20;-2; 10 6、实 7、视度瞳孔 8、在不影响系统光学特性的的情况下改变成像光束的位置,使后面系统的通光口径不致过大。 9、30 10、10 11、保持系统的共轴性 12、提高数值孔径和减小波长

13、小 二、简答题 1、什么是共轴光学系统、光学系统物空间、像空间? 答:光学系统以一条公共轴线通过系统各表面的曲率中心,该轴线称为光轴,这样的系统称为共轴光学系统。物体所在的空间称为物空间,像所在的空间称为像空间。 2、如何确定光学系统的视场光阑? 答:将系统中除孔径光阑以外的所有光阑对其前面所有的光学零件成像到物空间。这些像中,孔径对入瞳中心张角最小的一个像所对应的光阑即为光学系统的视场光阑。 3、共轴光学系统的像差和色差主要有哪些? 答:像差主要有:球差、慧差(子午慧差、弧矢慧差)、像散、场曲、畸变;色差主要有:轴向色差(位置色差)、倍率色差。 4、对目视光学仪器的共同要求是什么? 答:视放大率| | 应大于1; 通过仪器后出射光束应为平行光束,即成像在无限远,使人眼相当观察无限远物体,处于自然放松无调节状态。 5、什么叫理想光学系统? 答:在物像空间均为均匀透明介质的条件下,物像空间符合“点对应点、直线

汇编语言试题及参考答案

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

汇编程序习题

汇编程序习题 1.试分析以下程序段完成什么功能? MOV CL,4 SHL DX,CL SHL AX,CL SHR BL,CL INT 3 2.写出执行以下计算的指令序列: 1)Z←W+(Z-X)2)Z←W-(X+6)-(R+10) 3)Z←(W*X)/(R+6)4)Z←((W-X)/5*Y)*2 3.求两个数56H和67H进行ADD,并求出标志OF,CF,SF,ZF的值。4.阅读程序段,回答下述问题: 1)MOV AX,4000H 2)MOV AX,5678H 3)MOV AX,1234H OV DS,AX MOV BX,99AAH MOV CX,8912H MOV BX,1238H PUSH BX CMP AX,CX MOV〔BX〕,2244H PUSH AX INT 3 MOV AL,〔BX〕 POP DX SF=?OF=?JA成立否? INT 3 POP CX AL=?存储器的物理地址=?DX=?CX=? 5.下列程序能完成什么功能? DATY1 DB 300DUP(?) DATY2 DB 100DUP(?) …… MOV CX,100 MOV BX,200 MOV SI,0 MOV DI,0 NEXT:MOV AL,DATY1〔BX〕〔SI〕 MOV DATY2〔DI〕,AL

INC SI INC DI LOOP NEXT 6.下列指令哪些是错误的?并简述之。 1)MOV 15,BX 2)CMP OP1,OP2(假定OP1,OP2是用DB定义的变量) 3)CMP AX,OP1 4)CMP OP1,25H 5)MOV DS,CS 7.下列程序段执行后,BX的值是什么? MOV CL,3 MOV BX,0B8H ROL BX,1 ROR BX,CL 8.编写一个程序段,将内存200H单元开始的256个单元的内容,取绝对值后传送到400H开始的256个单元中。 9.求出下列各数与62A0H之和,并根据结果确定SF,ZF,CF,OF的值。 1)1234H 2)4321H 3)CFA0H 4)9D60H 10.求出下列各数与4AE0H之差,并根据结果确定SF,ZF,CF,OF的值。 1)1234H 2)5D80H 3)9090H 4)EA04H

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

微机原理与汇编语言复习题及参考答案 ——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.指出下列哪个数据在汇编语言中是非法的。()

51汇编程序练习题1

单片机汇编程序设计练习 一、存储器之间的数据传送 1、编程实现将单片机内部RAM60H开始的连续32个单元置为FFH。 2、编程实现将内部RAM30H开始的连续16个数传送到内部RAM50H开始的连续单元中。 3、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,数据块的长度为32个字节。 4、编程实现将单片机内部RAM30H为首地址的数据块传送到外部RAM2000H 开始的单元中,数据块的长度存放于内部RAM的20H单元。 5、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,直到数据内容为0DH时停止传送。 6、编程实现将ROM1000H地址的内容传送到内部RAM的25H单元。 7、编程实现将ROM2000H开始的连续10个地址的内容传送到内部RAM的25H 开始的单元。 8、编程实现将ROM1000H开始的连续100个地址的内容传送到外部RAM2000H 开始的连续单元中。 二、查表程序设计 1、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其平方值,并存放于40H。 2、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其立方值,并存放于R6。 3、单片机外部ROM TAB1地址开始存放一组ASCII码表,试用查表方法,将R2的内容(范围为0~F)转换为与其对应 的ASCII码,并从P1口输出。 4、使用8051的P1口作为段控驱动共阳 LED数码管,硬件连接如图。 编程实现将8051 R7单元内容(在 00H-09H之间)显示在数码管上。00H-09H 的共阳字形代码如下表所示。 04H 05H 06H 07H 08H 09H

汇编语言题库

汇编语言题库 一、单项选择题 1、在下列的选项中,能够组成计算机系统的是()。 A.硬件系统和软件系统 B.CPU、存储器、输入/输出设备 C.操作系统、各种语言 D.系统软件和应用软件2、汇编语言属于()。 A.用户软件 B.系统软件 C.高级语言 D.机器语言3、汇编语言源程序经汇编程序汇编后产生的文件的扩展名是()。 A.EXE B.OBJ C.ASM D.LST 4、汇编语言的什么文件经链接(LINK)后产生可执行文件? A.ASM B.EXE C.LST D.OBJ 5、中央处理器CPU是由()组成的。 A.运算器 B.控制器 C.寄存器组 D.前三者6、IBM PC机的DOS是属于()。 A.用户软件B.系统软件C.系统硬件 D.一种语言7、汇编语言源程序是()程序。 A.不可直接执行的B.可直接执行的 C.经汇编程序汇编后就可执行的D.经连接后就可直接执行的8、8086/8088 CPU的寄存器组中,8位的寄存器共有()个。 A.4B.6C.8D.109、8086/8088 CPU的寄存器组中,16位的寄存器共有()个。 A.10B.12C.13D.1410、8086/8088 CPU执行算术运算时PSW共有()个标志位会受影响。 A.4B.5C.6D.711、在程序执行过程中,IP寄存器始终保存的是()。 A.上一条指令的首地址B.本条指令的首地址。 C.下一条指令的首地址D.需计算有效地址后才能确定地址。 12、IBM PC机的存储器可分()个段。 A.4B.256C.512D.65536 13、当使用BP作编程地址时,此时使用的是()段。 A.CSB.DSC.ESD.SS

汇编语言程序例题0001

【例】试编写一程序计算以下表达式的值。 w = (v- (x * y + z -540 )) /x 式中x、y、z、v均为有符号字数据。 设x、y、z、v的值存放在字变量X、Y、Z、V中,结果存放在双字变量W之中,程序的流程图如图所示。 DATA SEGMENT X DW 200 Y DW 100 Z DW 3000 V DW 10000 W DW 2 DUP (?) DATA ENDS STACK SEGMENT STACK DB 200 DUP (0) STACK ENDS CODESEGMENT ASSUME DS DATA CS: CODE SS: STACK START MOV AX DATA MOV DS AX ; DATA>AX MOV AX X IMUL Y ; (X) * (DX AX MOV CX AX

MOV BX,DX ;(DX AX) T BX : CX ) MOV AX,Z CWD ; (Z)符号扩展 ADD CX,AX ADC BX,DX ; ( BX: CX)+( DX:AX)BX: CX) SUB CX,540 SBB BX,0 ;( BX:CX) - 5 40~BX : CX) MOV AX,V CWD ; (V)符号扩展 SUB AX,CX SBB DX, BX ;( DX: AX)-((BX CX DX: AX) IDIV X ;( DX:AX)/X MOV W,AX ;商5 MOV W+2 DX ;余数D?W+2 MOV AH,4CH INT 21H CODEENDS ;退出DOS 状态 END START 【例】已知某班学生的英语成绩按学号(从 1 开始)从小到大的顺序排列在要查的学 生的学号放在变量NO中,查表结果放在变量ENGLISH中。编写程序如下: STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT TAB DB 80 ,85,86,71,79,96 DB 83 ,56,32,66,78,84 NO DB 10 ENGLIST DB ? DATA ENDS CODE SEGMENT ASSUME DS: DATA,SS: STACK,CS: CODE BEGIN: MOV AX,DATA MOV DS,AX LEA BX,TAB MOV AL,NO DEL AL XLAT TAB MOV ENGLIS,H AL MOV AH,4CH INT 21H CODEENDS TAB表中,

汇编题库重点复习题

1.已知X=76,则[X]补=_______。 A.76H B. 4CH C. 0B4H D. 0CCH 2.已知[X]补=80H,则X =_______。 A.80H B.0 C. 0FFH D. -80H 3.已知[X]补=80H,则[X]补/2=_______。 A.0CCH B.4CH C. 49H D. 31H 4.已知X=78,Y=-83,则[X+Y]补=_______。 A.0F5H B.0A1H C. 0FBH D. 65H 5.将124转换成十六进制的结果是_______。 A.7CH B.7DH C. 7EH D. 7BH 6.将93H看成一个压缩的BCD码,其结果是_______。 A.10010101 B.10010011 C. 10000011 D. 10000001 7.45转换成二进制数是_______。 A.10101101 B.00111101 C. 00101101 D. 10011101 8.6CH 转换成十进制数是_______。 A.118 B.108 C. 48 D. 68 9.将93H扩展为字的结果是_______。 A.FF93H B.0093H C. 1193H D. 1093H 10.56的压缩BCD码是_______。 A.38H B. 56H C. 0506H D. 3536H 11.ASCII中的47H表示字符的是_______。 A.“7” B. “G” C. “g” D. “E” 12.十进行数-1的8位二进制数补码是_______。 A.11111110 B. 11110000 C. 11111111 D. 10001111 13.下列为补码表示,其中真值最大的数是_______。 A.10001000 B. 11111111 C. 00000000 D. 00000001 14.十六进制数88H,可表示成下面几种形式,请找出错误的表示_______。 A.无符号十进制数136 B. 1带符号十进制数-120D C. 压缩BCD码十进制数88 D. 8位二进制数-8的补码 15.计算机对字符、符号采用统一的二进制编码。其编码采用的是_______。 A.BCD码 B. 二进制码 C. ASCII D. 十六进制码第二章 16.在微机中分析并控制指令执行的部件是_______。 A.寄存器 B. 数据寄存器 C. CPU D. EU 17.在计算机的CPU中执行算术逻辑运算的部件是_______。 A.ALU B. PC C. AL D. AR 18.执行指令PUSH CX后堆栈指针SP自动_______。 A.+2 B. +1 C. —2 D. —1 19.在标志寄存器中表示溢出的是_______。 A.AF B. CF C. OF D. SF 20.对汇编语言源程序进行翻译的是程序是_______。 A.连接程序 B. 汇编程序 C. 编译程序 D. 目标程序

应用光学习题

应用光学习题. 第一章 : 几何光学基本原理 ( 理论学时: 4 学时 ) ?讨论题:几何光学和物理光学有什么区别它们研究什么内容 ?思考题:汽车驾驶室两侧和马路转弯处安装的反光镜为什么要做成凸面,而不做成平面 ?一束光由玻璃( n= )进入水( n= ),若以45 ° 角入射,试求折射角。 ?证明光线通过二表面平行的玻璃板时,出射光线与入射光线永远平行。 ?为了从坦克内部观察外界目标,需要在坦克壁上开一个孔。假定坦克壁厚为 200mm ,孔宽为 120mm ,在孔内部安装一块折射率为 n= 的玻璃,厚度与装甲厚度相同,问在允许观察者眼睛左右移动的条件下,能看到外界多大的角度范围 ?一个等边三角棱镜,若入射光线和出射光线对棱镜对称,出射光线对入射光线的偏转角为40 °,求该棱镜材料的折射率。 ?构成透镜的两表面的球心相互重合的透镜称为同心透镜,同心透镜对光束起发散作用还是会聚作用?共轴理想光学系统具有哪些成像性质 第二章 : 共轴球面系统的物像关系 ( 理论学时: 10 学时,实验学时: 2 学时 ) ?讨论题:对于一个共轴理想光学系统,如果物平面倾斜于光轴,问其像的几何形状是否与物相似为什么 ?思考题:符合规则有什么用处为什么应用光学要定义符合规则 ?有一放映机,使用一个凹面反光镜进行聚光照明,光源经过反光镜以后成像在投影物平面上。光源高为 10mm ,投影物高为 40mm ,要求光源像高等于物高,反光镜离投影物平面距离为 600mm ,求该反光镜的曲率半径等于多少 ?试用作图法求位于凹的反光镜前的物体所成的像。物体分别位于球心之外,球心和焦点之间,焦点和球面顶点之间三个不同的位置。 ?试用作图法对位于空气中的正透镜()分别对下列物距: 求像平面位置。

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

习题一 1 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数 11010011,01110111,10000011,00101111 ,10101010 查看正确答案 无符号数: 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 十六进制运算 1A52H+4438H ,3967H-2D81H,37H×12H ,1250H×4H 查看正确答案 5E8AH,0BE6H,3DEH,4940H 3 将十进制数变为8位补码,做运算(结果用二进制、十六进制、十进制表示) 29+53,73-24,-66+82 ,-102-15 查看正确答案 00011101+00110101=01010010=52H=82 01001001+11101000=00110001=31H=49 10111110+01010010=00010000=10H=16 10011010+11110001=10001011=8BH= -117 4 用压缩BCD码计算(结果用二进制、BCD码、十进制表示) 29+53,73-24,66+18 ,132+75 查看正确答案 00101001+01010011=01111100+00000110=10000010=82H=82 01110011-00100100=01001111-00000110=01001001=49H=49 01100110+00011000=01111110+00000110=10000100=84H=84 0000000100110010+01110101=0000000110100111+00000110 =0000001000000111=0207H=207 5 符号位扩展(字节扩展为字,字扩展为双字) 20A3H,94H ,3456H ,7FH ,EC00H 查看正确答案 000020A3H,FF94H,00003456H,007FH,FFFFEC00H 6 若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。 查看正确答案 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 7 写出下列十六进制数所能代表的数值或编码: (1)38H (2)FFH (3)5AH (4)0DH

汇编语言程序设计练习题

汇编语言程序设计练习题 阅读程序并完成填空: 1.1.MOV BL,85H MOV AL,17H ADD AL,BL AL=?,BL=?,CF=? 2.2.MOV AX,BX NOT AX ADD AX,BX INC AX AX=?,CF=? 3.3.MOV AX,0FF60H STC MOV DX,96 XOR DH,0FFH SBB AX,DX AX=?,CF=? 4.4.MOV BX,0FFFEH MOV CL,2 SAR BX,CL 5.5.MOV BX,0FFH AND BX,0FFFH OR BX,0F0FH XOR BX,00FFH 上述程序段运行后,BX=?,CF=? 6.6.CMP AX,BX JGE NEXT XCHG AX,BX NEXT:CMP AX,CX JGE DONE XCHG AX,CX DONE:。。。。。 试回答: (1)(1)上述程序段执行后,原有AX、BX、CX中最大数存放在哪个寄存器中? (2)(2)这3个数是带符号数还是无符号数?

7.7.在数据段ADDR1地址处有200个字节,要传送到数据段ADDR2处。 MOV AX,SEG ADDR1 MOV DS,AX MOV ES,------- MOV SI,------- MOV DI,OFFSET ADDR2 MOV-----,200 CLD REP--------- 8.8.ADDR1开始的单元中连续存放两个双字数据,将其求和存放在ADDR2开始的单元。 MOV CX,2 XOR BX,BX CLC NEXT:MOV AX,[ADDR1+BX] ADC AX,------- MOV[ADDR2+BX],AX ADD--------,2 ---------NEXT 9.9.设初值AX=1234H,BX=5678H,DX=0ABCDH,则执行下面一段程序后AX=------,BX=----,DX=--------。 MOV CL,4 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 10.10.设有一个首地址为ARRAY有N个字数据的数组,要求求出该数组之和,并把结果存入TOTAL地址中,有关程序如下:MOV CX,------ MOV AX,0 MOV SI,0 START:ADD AX,-----

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

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 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

汇编期末复习题及答案

一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。 1.逻辑地址 2.物理地址 3.标志寄存器 4.存储器寻址方式 5.补码 二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。 1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?(1100100)2, (64)16 2.假设(DS)=0B00H,(BX)=0210H,对于指令MOV DS:120H[BX],AL,其目的操作数的物理地址为多少?0B00H*10H+210H+120H = B330H 3.假设(BX)=0210H,(DI)=0060H,对于指令ADD DL,[BX][DI],其源操作数的偏移量为多少?210H+60H=270H 4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=? 执行push,指针减小,每次占用两个字节,60H-2*5 = 56H 5.对于一个十进制数– 65,其二进制补码表示形式为多少? 65)2 = 1000001,取反0111110,加一0111111,加符号10111111 三. 排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析正确给3分,判断错误不给分。 1.PUSH 5588H ; push的源操作数不能是立即数2.MOV DS,1720H ; 给段寄存器赋值不能给立即数3.ADD AX,CL ;AX 是16位的,CL是8位的,不能相加4.AND AX,[DX] ;DX 不是基址寄存器四.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。(寄存器中的内容请使用十六进制形式给出) 1.阅读如下程序片段 MOV AL,4CH MOV BL,0B5H ADD AL,BL 执行上述程序片段后,(AL)= 1H,(BL)=B5H , CF= ,OF= ,PF= . 2.阅读如下程序片段 MOV AL,0F3H MOV DL,0C4H ADD AL,DL AND AL,0FH

汇编语言期末复习题库

一、填空题 1.中央处理器包括运算器、控制器、寄存器组。 2.物理地址是指实际的20 位主存单元地址,每个存储单元对应唯一 的物理地址。 3.用二进制代码书写指令和程序的语言,称为机器语言。 4.计算机中的指令由操作码和操作数两部分组成。 5.把A和B两个寄存器的内容进行异或运算,若运算结果是0 ,那么 A、B寄存器的内容必定相同。 6.AL,BL中存放着压缩的BCD数,(AL)=18H,(BL)=47H,执行如下 两条指令ADD AL,BL 和DAA后,(AL)=65H 。 7.当指令“SUB AX,BX”执行后,CF=1,说明最高有效位有借位; 对有符号数,说明操作结果溢出。 8.FLAG状态标志寄存器中,AF为辅助进位标志,CF为进位标志, SF为符号标志,ZF为零标志,OF为溢出标志,PF为奇 偶性标志。 9.指出下列指令源操作数的寻址方式: MOV AX,ARRAY[SI] 变址寻址 MOV AX,ES:[BX] 寄存器间接寻址 MOV AX,[200H] 直接寻址 MOV AX,[BX+DI] 基址变址寻址 MOV AX,BX 寄存器寻址 MOV AX,1200H 立即数寻址

MOV AX,20[BX+SI]基址变址寻址 MOV AX,[DI+20] 变址寻址 10.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H, (20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21023H)=65H,下列指令执行后填入AX寄存器的内容: (1)MOV AX,1200H;(AX)= 1200H (2)MOV AX,BX;(AX)=0100H (3)MOV AX,[1200H];(AX)= 4C2AH (4)MOV AX,[BX];(AX)= 3412H (5)MOV AX,1100[BX];(AX)= 4C2AH (6)MOV AX,[BX][SI];(AX)= 7856H (7)MOV AX,1100[BX][SI];(AX)= 65B7H 11.已知‘A’的ASCII是41H,那么‘E’的ASCII是45H 。 12.Ends 是段定义结束伪指令,与Segment配套使用。 13.逻辑地址由段基值和偏移量组成。将逻辑地址转换为物理地址的公 式是段基值*16+偏移量。其中的段基值是由段寄存器存储。 14.一个有16个字的数据区,它的起始地址为70A0:0100H,那么该数据 区的最后一个字单元的物理地址为70B1E H。 15.DEBUG命令中,显示内存命令 D ,显示寄存器命令R,汇编命令 A ,执行命令G 。

汇编习题及答案

汇编试题 1.CPU发出的访问存储器的地址是()。 A.物理地址 B.偏移地址 C.逻辑地址 D.段地址 2.将高级语言的程序翻译成机器码程序的实用程序是()。 A.编译程序 B.汇编程序 C.解释程序 D.目标程序 3.DEC BYTE PTR[BX]中的操作数的数据类型是()。 A.字 B.双字 C.字节 D.四字 4.在下列语句中,BUFFER称为()。 BUFFER DB 01H,0AH A.符号 B.变量 C.助记符 D.标号 5.串操作指令中,源串操作数的段地址一定在()寄存器中。 A. CS B. SS C. DS D. ES 6.使计算机执行某种操作的命令是()。 A.伪指令 B.指令 C.标号 D.助记符 7.将数据5618H存放在存储单元中的伪指令是()。 A. DATA1 DW 1856H B. DATA1 DB 18H,56H C. DATA1 EQU 5618H D. DATA1 DB 18H,00H,56H,00H 8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=()。 A. 1400H B. 77F8H C. 0000H D. 0FFFFH 9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是()码。 A. BCD码 B.二进制码 C.ASCII码 D.十六进制码 10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为()。 A.汇编语言 B.高级语言 C.机器语言 D.低级语言 二.填空 1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是______。 2.通常所说的计算机系统包括________和________两大部分。 3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是________、________、________、________。 4.现有AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(31201H)=02H,(31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF、CF的值。 A. ADD AX,1200H;问AX=________H,ZF=________。 B. SUB AX,BX;问AX=_______ H,ZF=________。 C. MOV AX,[BX];问AX=________H,CF=________。 D. NEG WORD PTR[1200H];问(31200H)=________H ,CF=________。 5.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H, 试计算出下列各种寻址方式下的有效地址,填入括号中。 A.使用D的直接寻址()。 B.使用BX的寄存器间接寻址()。 C.使用BX和D的寄存器相对寻址()。 D.使用BX、SI和D的相对基址变址寻址()。 E.使用BX、SI的基址变址寻址()。 三.简答题 1.程序在数据段中定义的数组如下: ARRAY DB …YES IS?

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

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课后四、六章的答案,大家抓紧时间复习哦! 一、选择题 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

相关文档