2024年6月12日发(作者:)

12H02000H

02001H

02002H

02003H

34H

56H

78H

7、寻址方式就是指:寻找操作数或者操作地址的各种方法,寻址方式主要有7种

(1).立即数寻址

(2).寄存器寻址

(3).直接寻址

(4).寄存器间接寻址

(5).寄存器相对寻址方式

(6).基址变址寻址方式

(7).相对基址变址寻址方式

一、问答题:

1、微型计算机是由五部分组成,包括控制器,运算器,存储器、输入设备,输出设

备;控制器控制计算机运转,计算器主要是算术运臬和逻辑运算,存储器主要是

存储信息,输入设备主要是输入信息给计算机,输出设备主要是计算机输出信息。

2、IBM PC机的主存主要有只读存储器和随机存储器。只读存储器只能读出,不能写

入,随机存储器可以写入也可以读出。

3、8086微处理器的字长为16位,能直接访问的存储单元可以是2个字节。

4、8088微处理器的逻辑地址两部分组成,包括段地址和偏移地址;物理地址=段地址

*16+偏移地址。

5、如果一个程序在执行前(CS)=0A7F0H,(IP)=2B40H,该程序的起始地址

=0A7F0H*16+2B40H=0AAA40H。

6、

二、填空题

1、CPU、存储器

2、4、4、ALU

3、逻辑地址、物理地址

4、偏移地址,段基址*16+偏移地址,段寄存器

5、码、操作数

6、寄存器相对寻址方式,寄存器间接寻址,直接寻址,基址变址寻址方式,寄存器

寻址,立即数寻址,相对基址变址寻址方式,寄存器相对寻址方式

7、ZF,CF,SF,OF

8、1,有符号

9、05AEH,4000H

10、0AB0H,1,1,0F8B0H,1,1

三、选择题

1、C 2、A 3、C 4、B 5、A 6、D 7、C 8、B 9、C 10、D

四、是非判断题

1、× 2、× 3、√ 4、√ 5、× 6、×

五、根据以下要求选用相应的指令或指令序列

1、MOV AX,4629H

2、LDS BX,DATA

3、ADD DX,BX

4、SUB AX,0360H

5、MOV BX,ES:[0500H]

6、MOV CL,2

SHL AL,CL

7、IMUL BL

8、MOV CX,0

9、OR DX,0E00H

5、AND AL,0FH

6、XOR CL,0F0H

7、MOV CL,2

SAR AX,CL

13、MOV CL,4

ROL AL,CL

14、SHL AX,1

RCL DX,1

15、NEG DX

NEG AX

SBB DX,0

=======================================================

一、回答下列问题

1、设VALA EQU 200

VALB EQU 30

VALC EQU 1BH

下列表达式的值各为多少?

(1)(VALA*VALC+VALB)/VALC

(2)(VALB AND 0FH)OR (VALB XOR 0FH)

(3)(VALA GE VALB )AND 0FH

2. 根据下列要求编写一个汇编语言程序::

(1)代码段的段名为COD_SG

(2)数据段的段名为DAT_SG

(3)堆栈段的段名为STK_SG

(4)变量HIGH_DAT所包含的数据为95

(5)将变量HIGH_DAT装入寄存器AH,BH和DL

(6)程序运行的入口地址为START

3、定义一个数据段的字符变量和数据变量。

(1)TRING为字符串变量:‘Personal computer’

(2)VALD为十进制数字节变量12,99

(3)VALH为十六进制数字变量32H,0FAH

(4)VALZ为10个零的字节变量

(5)VALW为20个字单元

4、定义一个数据段,要求如下:

(1)段界起始于字边界

(2)该段与同名逻辑段相邻连接成一个物理段

(3)类别号为‘DATA’

(4)定义数据12,30,‘ABCD’

(5)保留20个字的存储区

5、下列标号为什么是非法的?

(1) (2) 1_NUM (3) TEST-DATA(4) RET(5) NEW ITEM

6、下面的数据项设置了多少个字节?

(1) ASC_DATADB‘1234’(2) HEX_DATA DB1234H

7、 DATASEGMENT

TABLE_ADDRDW1234H

DATAENDS

.

.

.

MOVBX, TABLE_ADDR

LEABX, TABLE_ADDR

请写出上述两条指令执行后, BX寄存器中的内容。

8、写出分配给下列中断类型号在中断向量表中的物理地址。

(1) INT 12H(2) INT 8

9、AR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处。

(1)ADD VAR1,VAR2 (2)SUB AL,VAR1

(3)JMP LAB[SI] (4)JNZ VAR1

二、填空题

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

TABLE=20A1H,(232F7H)=3280H,(264E5H)=2450H,则

执行指令JMP BX后,(IP)= 1256H ;

执行指令JMP TABLE[BX]后,(IP)= 3280H ;

执行指令JMP [BX][SI]后,(IP)= 2450H 。

2、在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中偏移量分别为

30H、6CH、0B8H,则转向地址LAB的值分别为 ; ; ;

3、数据段中有以下定义:

ARRAY1 EQU 16H

ARRAY2 DW 16H

请指出下面两条指令的寻址方式:

MOV AX,ARRAY1; 寻址方式 。

MOV AX,ARRAY2; 寻址方式 。

4、下面两个语句的区别在于 、 。

X1 EQU 1000H

X2 =1000H

5、指令“AND AX,STR1 AND STR2”中,STR1和STR2是两个已赋值的变量,

两个AND的区别是 、 。

6、指令LOOPZ/LOOPE是结果 或 发生转移的指令。而指令

LOOPNZ/LOOPNE则是结果 或 发生转移的指令。

7、调用指令CALL可分为 、 、 和 等四种调用。

8、在汇编语言中,一个过程有NEAR和FAR两种属性。NEAR属性表明主程序和子

程序 ,FAR属性表示主程序和子程序 。

9、串处理指令规定源寄存器使用 ,源串在 段中;目的寄存器使用

,目的串必须在 段中。

10、 是过程定义结束伪指令,与 配套使用。 是段定义结束

伪指令,与 配套使用。

三、选择题

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

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

(1)SP= ;

A)2000H B)1FFFH

C)2001H D)1FFEH

(2)DH内容所在存储器的偏移地址为 ;

A)1FFFH B)1FFEH

C)1FFDH D)1FFCH

(3)DL内容所在存储器的偏移地址为 ;

A)1FFFH B)1FFEH

C)2000H D)1FFCH

(4)(AX)= ;

A)0H B)78H

C)0F0H D)56H

(5)(DI)= 。

A)1234H B)5678H

C)2000H D)00F0H

(6)(DX)= ;

A)5678H B)0ACF0H

C)2B3CH D)0ABF0H

(7)标志位ZF= 。

A)0 B)1 C)不定 D)无值

2、下面是多字节加法程序,第一个数和是8A0BH,第二个数是D705H。

DATASEGMENT

FIRSTDB (1), (2),0H

SECOND DB (3), (4)

DATAENDS

CODESEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV CX, (5)

MOV SI,0

(6)

NEXT: MOV AL,SECOND[SI]

ADC FIRST[SI],AL

INC SI

LOOP NEXT

MOV AL,0

ADC AL, (7)

MOV FIRST[SI],AL

MOV AH,4CH

INT 21H

CODEENDS

END START

请选择正确的答案填入空格中:

(1)A)8AH B)0BH

C)D7H D)05H

(2)A)8AH B)0BH

C)D7H D)05H

(3)A)8AH B)0BH

C)D7H D)05H

(4)A)8AH B)0BH

C)D7H D)05H

(5)A)3 B)2

C)1 D)4

(6)A)CLC B)CLD

C)STC D)CLI

(7)A)1 B)-1

C)0 D)0FFH

四、完成下列练习

1、设(DS)=0300H,(CS)=0200H,(IP)=0100H,(BX)

=1000H,DISPLACE=2000H,(4000H)=5000H,(6000H)=8000H

确定无条件转换指令的段内转移地址

(1)JMP BX

(2)JMP [BX]

(3)JMP DISPLACE[BX]

2、设AX和BX寄存器中是有符号数,CX和DX寄存器中是无符号数,写出下

列条件转移指令。

(1)CX值高于或等于DX值,则转移HIEQU

(2)AX值大于BX值,则转移GREAT

(3)CX值为0,则转移ZERO

(4)AX值小于或等于BX值,则转移SMAEQU

(5)CX值低于或等于DX值,则转移LOWEQU

(6)AX为负值,则转移NEGAT

(7)AX为偶数,则转移IMAGE

3、写出下列串操作指令所替代的指令序列。

(1)REP MOVSB

(2)REP LODSB

(3)REP STOSB

(4)REP SCASB

五、是非判断题

程序在数据段中的定义如下:

DATASEGMENT

NAMESDB ‘ABCD’

NAMETDW 20

DATAENDS

请判断下列指令是否正确?正确的填‘A’,错误的填‘B’。

(1)MOV BX,OFFSET NAMES ( )

(2) MOV AL,[BX+2] ( )

( 3) MOV AX,NAMES ( )

(4) MOV AX,WORD PTR NAMES+1 (

(5) MOV AL,NAMET ( )

(6) MOV AL,BYTE PTR NAMET ( )

(7) MOV AX,DATA ( )

(8) MOV DS,AX ( )

(9) MOV AX,SEG NAMES ( )

(10) MOV BX,DATA ( )

六、请阅读下列程序,分析其功能或结果

1、MOV AH,00

INT 16H

MOV AH,0AH

MOV CX,00

MOV BH,00

INT 10H

2、MOV AH,00

MOV AL,66

MOV DX,00

INT 17H

MOV AH,00

MOV AL,0DH

INT 17H

3、MOV AH,07

MOV AL,00

MOV BL,70H

MOV CH,02

MOV CL,05

MOV DH,22

MOV DL,38

INT 10H

4、MESSDB ‘PRESS ANY KEY’,0DH,0AH,‘$’

MOV AH,09

MOV DX,SEG MESS

MOV DS,DX

MOV DX,OFFSET MESS

INT 21H

5、MOV AH,2

MOV DL,1

INT 21H

七、编写程序

1.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

2.编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则

显示“MATCH”,若不同则显示“NO MATCH”。

3. 试编写程序,要求从键盘输入3个16进制数,并根据对3个数的比较显示如下信息:

(1)如果3个数都不相等则显示0;

(2)如果3个数中有2个数相等则显示2;

(3)如果3个数都相等则显示3。

4. 已知整数变量A和B,试编写完成下述操作的程序:

(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中;

(2)若两个数均为奇数,则两数分别加1,并存回原变量;

(3)若两个数均为偶数,则两变量不变。

5. 把0~10010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为

i+1的学生成绩。另一个数组RANK是30个学生的名次表,其中RANK+I的内容是学号

为i+1的学生的名次。试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK

数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。

6. 试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,

则与其相应的设备就输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入

过程结束。两个状态寄存器的端口地址分别是0024和0036,与其相应的数据输入寄存器

的端口则为0026和0038,输入字符分别存入首地址为BUFF1和BUFF2的存储区中。

7.编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将

这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为;

输入数字: 0,1,2,3,4,5,6,7,8,9

密码数字: 7,5,9,1,3,6,8,0,2,4

答案

一、回答下列问题

1、(1)C9H

(2)1FH

(3)0FH

2、答案:

DAT_SG SEGEMNT

HIGH_DATDB 95

DAT_SG ENDS

;

STK_SG SEGMENT

DW64 DUP(?)

STK_SG ENDS

;

COD_SG SEGMENT

MAINPROCFAR

ASSUMECS: COD_SG, DS: DAT_SG, SS: STK_SG

START:MOVAX, DAT-SG

MOVDS, AX

MOVAH, HIGH_DAT

MOVBH, AH

MOVDL, AH

MOVAH, 4CH

INT21H

MAIN ENDP

COD_SG ENDS

END START

3、答案:

DATA SEGMENT

TRING DB ‘Personal computer’

VALD DB 12,99

VALH DB 32H,0FAH

VALZ DB 10 DUP(‘0’)

VALW DW 20 DUP(?)

4、答案:

(1)1,表示BUFA所占的内存空间

(2)20,表示STA中DUP前重复的次数。

5、非法标号: (1)因为‘.’只允许是标号的第一个字符

(2)第一个字符不能为数字

(3)不允许出现‘-’

(4)不能是保留字,如助记符

(5)不能有空格

6、答案:

(1) 设置了4个字节 (2) 设置了2个字节