哈工大2010汇编语言试题

更新时间:2024-03-17 16:18:01 阅读量: 综合文库 文档下载

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

哈工大 2010 年 春 季学期

汇编语言程序设计(B) 试 题

题号 分数 一 二 三 四 五 学号 姓名 八 九 十 总分 六 七

一、 单项选择题(每小题1分,共20分)

1.1.C语言与汇编语言混合编程不可以( B ) A.C嵌入ASM B.ASM嵌入C

C.模块连接 D.C与ASM过程互相调用 2.在DEBUG中,编程或查看内存单元的内容时,只能使用( C )

A.二进制 B.十进制 C.十六进制 D.以上都可以 3. DEBUG中编写汇编语言程序,下列错误的是( D )

A.不能使用变量名和常量 B.不能使用十进制数 C.不能使用标号 D.程序不能大于64K 4.开机后计算机执行的第二条指令是( D )

A.远调用 B.远转移 C.近调用 D.近转移 5.CPU进行加法运算时( C )

A.溢出位、进位位有时候有关系 B.溢出位、进位位总有关系 C.溢出位、进位位有时候没有关系 D. 条件不同时关系不一样 6. 近转移指令,请完善其机器指令( C )

137A:2000 E9 ______ JMP 1234

A. 34 32 B. 36 32 C. 31 F2 D.F2 31 7. 设DF=1,每次执行CMPSW指令时,SI和DI均要分别( B )

A.减1

B.减2 C.加1

D.加2

8.执行NEG指令时,要设置标志位CF。设置CF的正确说法是( C )

A.对正数求补时,CF置0

B.对负数求补时,CF置0

C.对全0数据求补时,CF置0 D.对非零数据求补时,CF置0 9.32寻址方式中,错误的指令是( C )

第 1 页 (共 8 页) 试 题: 班号: 姓名:

A.MOV EAX,[EBX+ESI*2+100H]

B.MOV ECX,[ECX+EDI*4+0FFFFFH] C.MOV EAX,[EDX+ESI*6] D.MOV ECX,[EDI*8]

10.关于执行程序生成过程,叙述正确的是( C )

A.汇编程序把常量转换成原码生成OBJ文件

B. 连接程序把原码转换成补码生成执行文件

C. 编译程序或汇编程序把有符号数转换成补码生成目标文件 D. 以上都不对

11. 下列指令执行后,改变AL寄存器内容的指令是 ( D ) (A) TEST AL ,02H (B)OR AL ,AL (C) CMP AL ,BL (D) AND AL ,BL

12.一个有16个字的数据区,它的起始地址为70A0:DDF6H,这个数据区末子单元的物理地址是( C )。

(A)7E7E6H (B)7E805H (C)7E814H (D)7E816H

13.执行下述指令后,SP寄存器的值是 ( B )

MOV SP ,3210H PUSH AX

(A)3211H (B)320EH (C)320FH (D)3212H 14.当段间调用过程时,CPU将向堆栈中压入( A )作为断点。 (A)CS及IP; (B)DS、ES及SP; (C)AX、BX及CX; (D)IP、CS及PSW; (E)PSW、CS及IP

15.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是 ( B ) (A) 名字项 (B)操作项 (C)操作数项 (D)注释项

16.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有 ( D ) (A)CMP (B)SUB (C)AND (D) MOV

第 2 页 (共 8 页) 试 题: 班号: 姓名:

17.若定义DAT DW ‘12’则(DAT)和(DAT+1)两个相邻的内存中存放的数据是( B )。 (A)32H,31H (B)31H,32H (C)00H,0CH (D)00H,12H

18.对状态标志CF位产生影响的指令是: ( C ) (A) INC AX ; (B) NOT AX (C) NEG AX ; (D) DEC AX

19.下面的数据传送指令中错误的操作是: ( B ) (A)MOV DX, 2000H ; (B)MOV CS ,2000H

(C)MOV DS:[BP+DI],2000H;(D) MOV WORD PTR[BX],2000H 20.下列指令中不合法的指令是 ( A ) (A)IN AX ,03F8H ; (B)MOV BX ,AX (C)REP CMPSB ; (D) SHR BX ,CL ;

二、填空题(本大题共 6 小题,每小题 1 分,共 6 分)

21 .指令指针寄存器 IP 是用于存放代码段的 ______偏移地址________ 。 22 .与 LEA BX , VAR 等效的指令是 __ MOV BX,OFFSET VAR ______ 。 23 .要从一个字符串中找出一个 AL 中指定的字符,可选用 __ XLAT ___ 指令实现。

24 . SAL 指令在左移后,如果移位前后符号位有变化,那么标志位 __OF __ 置 1 。

25 .假设某数据段段名为 DATA , VAR 是该段中的一个变量,若实现将该段的段地址送入 AX 中,可用 “MOV AX , DATA” 语句实现,也可以用 _ MOV AX,SEG

VAR ___ 语句实现。

26 .设 BX=1152H ,偏移量 D=3568H ,那么指令 “ADD D[BX] , AL” 中目的操作数的有效地址 EA=____46BAH ______ 。

三、简答题(每小题2分,共8分)

第 3 页 (共 8 页) 试 题: 班号: 姓名:

27 .下列语句是否有语法错误,若有,指出是哪一条及是什么错误。 ①Da1 DB‘ABC' ②DA2 DD‘ABC'

② 数值超出范围—类型不匹配

28 . 8086 / 8088 指令的立即寻址方式的操作数存放在什么段内 ? 寄存器间接寻址方式 [BX] 的操作数在什么段内 ?

代码段 数据段

29 .下列指令中,源操作数是什么寻址方式 ? 操作数的物理地址如何表达 ? MOV AX , 10H [DI] MOV DX , [BX][SI]

寄存器相对寻址 基址变址寻址 DS*16+DI+10H DS*16+BX+SI

30 .下列语句在存储器中分别为变量分配多少个字节 ? ①AD1 DW 10H DUP(?) , 10H

②COUNT EQU 100

③AD2 DB 3 DUP(2 DUP (3))

④AD3 DD COUNT DUP(?)

22H 0 6H 400

四、程序分析题(每小题6分,共36分)

31 . BUF1 DB -1 , 2 , -3 , 4 , -5 , 6 , -7 , 8 , -9 BUF2 DB 9 DUP(O) ┇

XOR BL , BL MOV SI , O MOV CX , 9

LOP : MOV AL , BUF1[SI] TEST AL , 80H JZ K INC BL NEG AL

第 4 页 (共 8 页) 试 题: 班号: 姓名:

K : XOR AL , 01H MOV BUF2[SI] , AL INC SI LOOP LOP ??

① 写出程序运行后 BUF2 各字节中的数据

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

②BL=__________5___

32 . DD2 DB 0 , l , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ┇

LEA SI , DD2 LEA DI , DD2+1 MOV CX , 5

LOP : MOV AL , [SI] XCHG AL , [DI] MOV [SI] , AL ADD SI , 2 ADD DI , 2 DEC CX JNZ LOP

上述程序段执行后,回答: ① 该程序段完成什么功能 ?

把DD2的奇数位和偶数位交换位置,

②DD2 开始的 l0 个字节数应是什么值 ?

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

33 .XOR BL, BL NEG BL JZ NEXT ADD BL, 5 JMP DONE

NEXT : NOT BL

第 5 页 (共 8 页)

试 题: 班号: 姓名:

DONE : ?? 程序段执行后, BL=______0FFH ________ , CF=______0________ 34 . R1 DB 246 ┇

XOR BH , BH MOV AL , R1 MOV DL , 10

LOP : CMP AL , 0 JBE NEXT MOV AH , 0 DIV DL

MOV BL , AH PUSH BX JMP LOP

NEXT : ?? ┇

上述程序段执行后共向堆栈压入 ____3__________ 个数,按压入的先后次序该 数列 为 _____6,4,2_________ 。

35 . VAR1 DB 56H , 76H , 87H , 98H , 0A9H ┇

MOV CX , WORD PTR VAR1 AND CX , 0AH

MOV BX , WORD PTR VAR1+3 SAR BX , CL

程序段运行后, BX=___0EA66H_______ , CX=______2________ 。 36 .已知 AX=1234H MOV BX , AX NOT BX

XOR BX , AX

上述程序段执行后, BX=____0FFFFH _____ 。如把 XOR 指令改为 OR 指令,那么 程序段执行后, BX=______0FFFFH ___ 。

五、程序填空题(每小题

6分,共12分)

37 .下面程序段实现把 DA1 字单元内容取绝对值后送到 DA2 中,请在横线处各填一条指令。

DA1 DW ×××× DA2 DW ? ┇

MOV AX , DA1

①_____ ADD AX,0(test ax,8000h cmp ax,0等)_________

第 6 页 (共 8 页) 试 题: 班号: 姓名:

JNS K ②_____ NEG AX _________ K : MOV DA2 , AX

38 .下面程序段完成用串指令在 DA1 开始的 26 个字节单元中依次存放 A—Z 的 ASCII 码,在 DA2 开始的 26 个字节单元中依次存放 Z—A 的 ASCII 码,请在横线处各填一条指令。

DA1 DB 26 DUP(?) DA2 DB 26 DUP(?) ┇

LEA DI , DA1 MOV AL , ‘A' MOV CX , 26 CLD

LOP1 : STOSB

①_____ INC AL _________ LOOP LOP1 MOV CX , 26

LOP2 : ②____ DEC AL _____ STOSB

LOOP LOP2

六、编制程序(第

39小题6分,第40小题12分,共18分)

39 .( 6 分)试编制一完整程序,计算1+2+3+??+100的值

.MODEL SMALL 程序结构(1分) .STACK .DATA

N DW 100 数据定义(1分) SUM DW 0 .CODE

START: MOV AX,@DATA MOV DS,AX

MOV CX,N 循环初始化(1分) MOV AX,0

L: ADD AX,CX 循环体(1分) LOOP L 循环结束(1分) MOV SUM,AX

第 7 页 (共 8 页) 试 题: 班号: 姓名:

MOV AX,4C00H 返回OS(1分) INT 21H END START

注意:题目有多种方法,只要结果对,都算正确

40.( 12 分)试编写一完整程序,计算数组 BUF DB ‘0123456789ABCDEF’中每个元素的二进制位中1的个数之和

.MODEL SMALL ; 程序结构(1分) .STACK .DATA

BUF DB \数据定义(1分) COUNT DW 0 .CODE

START: MOV AX,@DATA MOV DS,AX

MOV SI,16 ;外循环初始化(1分) MOV CX,0 LEA BX,BUF

L1: MOV AL,[BX] ;内循环初始化(1分) MOV DI,8

L3: ROL AL,1 ;内循环体(2分) JNC L2 INC CX

L2: DEC DI ;内循环结束(2分) JNZ L3

DEC SI ;外循环结束(2分) INC BX JNZ L1

MOV COUNT,CX ;结果(1分)

MOV AX,4C00H ;返回OS(1分) INT 21H END START

第 8 页 (共 8 页)

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

Top