当前位置:首页 >> 英语 >>

广东海洋大学汇编语言复习题 套题+答案


注:此为广东海洋大学汇编语言复习题,学会满分都不成 问题。 答案由阿稻想洋洋整理提供, 如有疑问和不妥之处, 请联系师兄我。
2015 汇编语言复习提纲
一、考试题型: 1、选择题(20 分,每题 1 分) 2、判断题(10 分,每题 1 分) 3、填空题(20 分,每空 2 分) 4、程序填空题(24 分,每空 3 分) 5、程序分析题(16 分,每题 4

分) 6、编程题(10 分) 二、考试范围与考试形式 教材第 1~9 章,笔试,闭卷 三、考试要点: 1、十进制、二进制、十六进制的相互转换; 位、字节与字的概念; SACII 码(常用数字、字母及回车换行空格符的 ASCII 码各是 多少?)与 BCD 码的特点。 2、 8086CPU 内部结构及总线宽度 (地址总线宽度和数据总线宽度) 3、8086CPU 有哪些寄存器,寄存器的位数、名称及作用; 标志寄存器各个位的名称。 4、内存单元的地址与内容; 物理地址的形成与存储器分段结构,逻辑地址与物理地址的关

系,段的划分条件及段的大小。 5、常用的与数据有关的寻址方式 6、常用汇编指令的格式和功能 (数据传送类指令 MOV、LEA、IN/OUT、PUSH/POP、CBW、 CWD 算术运算类指令 ADD、ADC、INC、SUB、DEC、CMP、MUL、 DIV 逻辑运算与移位 AND、OR、XOR、SHL、SHR 转移指令 JMP、JNZ/JZ、JG/JL、JBE/JAE 串操作指令 REP 、 REPZ、MOVSB、CMPSB、STOSB、STD、 CLD 循环指令 LOOP、LOOPNZ 子程序调用与返回 CALL、RET 中断调用与返回 INT、IRET

7、常用伪指令的格式与用法 SEGMENT…ENDS、PROC…ENDP、MACRO…ENDM、 ASSUME、END、OFFSET、SEG、LOCAL DB、DW、LABEL、PTR、DUP 8、汇编语言的上机过程及各个过程中产生的文件后缀名;源程序 的基本结构 9、debug 常用命令的功能及用法(R、D、E、A、U、T、G、P); 要明白 Debug 中使用命令后显示各栏内容的含义。

10、循环程序结构:循环条件的控制 11、分支程序结构:条件转移指令的用法,分支顺序的安排 12、子程序结构:子程序的调用与返回,子程序参数传递 13、宏定义、宏调用 14、中断源与中断向量;中断向量表 15、常用 BIOS 和 DOS 中断(INT 10H INT 21H)、显示器显

示的原理、文本方式下要显示字符对应显存中两个字节的内容。 四、考试时间 2015 年 6 月 11 日(14 周周四)下午 4:10。 地点:主 424、426、508、516

《汇编语言复习题》
一、单选题
1. 数字 1 的 ASCII 码值是( C A. 1 B. 30H 2.ASCII 码字符使用 ( A. 3 B. 7 )。 D. 20H D. 16 )文件。 D. .DOC C. 31H BB ) 位进行编码。 C. 8

3. 汇编语言源程序经过汇编后产生( B A. .ASM B. .OBJ

C. .EXE

4.汇编语言源程序是( A. .EXE

B)文件。 C. .OBJ A )。 D. SEGMENT..END D. .DOC

B. .ASM

5. 汇编语言源程序中定义段的伪指令是( A. SEGMENT..ENDS

B. PROC..ENDP C. MACRO..ENDM

6.汇编语言源程序中定义过程的伪指令是( B )。 A. SEGMENT..ENDS B. PROC..ENDP C. MACRO..ENDM D. SEGMENT..END

7. 8086CPU 的地址总线宽度为( C )。

A. 8

B. 16

C. 20

D. 32

8.8086CPU 的数据总线宽度为( C )。 A. 8 B.10 C.16 D.20 B )。 D. IP

9.下列哪个寄存器可拆分成 2 个 8 位寄存器( A. BP B. BX C. CS

10. 8086CPU 提供了( C )个 16 位寄存器。 A. 8 B. 12 C. 14 D. 22 )。 D. R )。

11. DEBUG 调试程序时查看寄存器内容的命令是( D A. D B. E C. U

12.DEBUG 调试程序时查看内存单元内容的命令是( D A. R B. E C. U

D. D

13. 下列哪个寄存器用来指示当前栈顶的偏移地址( A )。 A. SP B. BX C. BP D. IP C)。 D. 4015FH

14. 下列地址信息与 4015H:000FH 确定的内存地址不同的是( A. 4013H:002FH B. 4010H:005FH C. 4000H:005FH

15. 下列哪个寄存器在编程时不能用来保存内存单元的偏移地址( B )。 A. DI B. CX C. BX D. SI

16. 指令 MOV AX, BX 中源操作数的寻址方式是 (B )。 A. 直接寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 寄存器相对寻址 D )。

17. 指令 MOV AL,STRNG[ SI ] 中源操作数的寻址方式是 ( A. 直接寻址 B. 寄存器寻址 C. 寄存器间接寻址

D. 寄存器相对寻址 )个。

18. 在 8086 微机的输入输出指令中,可直接由指令指定的 I/O 端口号有 ( C A. 16 B. 64 C. 256 )。 C. DF )。 C. DF AX ”后,SP 的值是( A D. 4001H D. IF )。 D. IF D. 216

19. 标志寄存器中下列哪个位是中断标志位( D A. CF B. OF

20.标志寄存器中下列哪个位是方向标志位( C A. CF B. OF

21. 设 SP 初值为 4000H,执行指令“ POP A.4002H B. 3FFEH

C. 3998H

22.设 SP 初值为 4000H,执行指令“ PUSH A. 3FFEH B. 3FFFH

AX ”后,SP 的值是( A D. 4002H

)。

C. 3998H

23.在内存分段管理中,8086CPU 能访问到的最小段空间是( A )。 A. 16 B B. 16KB C. 64KB D. 64B

24. 在内存分段管理中,8086CPU 能访问到的最大段空间是(C )。 A. 16 B 25. 8086CPU 允许有( A. 0 B. 16KB D B. 16 C. 64KB D. 64B

)个中断源 C. 64 D. 256 )

26. Debug 加载程序后查看寄存器内容如下, 则该程序第一条指令的起始地址是 ( D ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0001 A. 00001H B. 0b2d1H C. 0b3d1H D.0b3e1H )

27. 下列数据段中内容如下,则与符号 COUNT 等价的值是(D BUF COUNT A. 3 28. mov cx,0 s: add ax,bx loop s 以上指令序列执行后 add ax,bx 指令被执行了( A A. 65536 B. 65535 C. 1 )次 DB 2 DUP(0,2 DUP (1,2,3),3)

EQU $ - BUF B. 5 C. 12 D. 16

D. 0

29. 宏定义体内有标号,程序中要多次调用该宏,则宏定义体内必须使用( C )。 A. MACRO B. XALL C. LOCAL D) D. INCLUDE

30. 下列对于 Intel8086cpu 标志寄存器的说法正确的是(

A. 无符号数运算的进位情况由 of 位记录,有符号数运算的溢出情况由 cf 位记录。 B. cpu 执行每一条指令都会改变标志寄存器的内容。 C. 当前指令对 flags 的影响,不会为后续指令的执行提供依据。 D. 并不是所有的条件转移指令都要参考标志寄存器中的相关标志位。

二、判断题
针对 8086CPU,请判断下列指令格式的正误,正确打“√”,错误打“Ⅹ”。

1、 MOV CS, 3000H 2、 POP AX 3、 PUSH AL 4、 OUT 0FCH,AX 5、 IN AX,03FCH 6、 ADD 7、 AND BX, [BX] AL, 0F0H

( ( (

X

) √ )

X ) ) ) ) √ X) X ( ( √ ) ) )

( X ( X ( √ ( ( (

8、 INT 300H 9、 MOV AX, [SI][DI] 10、 RET 6 11、 MOV WORD PTR [BX] ,0 12、SHL AX, 4 13、MOV AX,BL 14、MOV [BX], [DI] 15、CALL FAR PTR S 16、MOV 17、ADD 18、MOV 19、JMP 20、SHL DS,1000H DS,AX AL,1000H WORD PTR [BX] AX,CL

√ ) X ) )

(

( X (

X ) )

( √ ( X) ( X ) ( X ) ( √ ) (

√ )

三、填空题
设 (DS)=3000H, (ES)=4000H, (SS)=5000H, (BX)=1000H, (BP)=1001H, (SI)=0001H, (DI)=0002H , (31000H)= 3412H , (31002H)= 7856H , (41000H)=9ABCH ,

(41002H)=2EF0H , (51000H)=3456H , (51002H)=789AH ,说明下列各条指令执行完后 AX 寄存器的内容。 1、执行指令 2、执行指令 3、执行指令 MOV MOV MOV AX,ES:[BX] 后(AX)= AX,[BX+SI] 后(AX)= AX,[BP] 后(AX)= 9ABCH 5634H 9A34H

4 、 写 出 与 指 令 LEA BX ,OFFSET BUFFER

BX , BUFFER

完全等效的指令

MOV

5、回车符(Enter)换行符的 ASCII 码分别是

0DH

、0AH

6、机器执行下列指令序列后,正确的结果是(BL)=05H MOV ADD ADC BL,81H BL,BL BL,BL 6 汇编指令 mov ax,0 call s inc ax s: pop ax

7、下面的程序执行后,(ax)= 内存地址 1000:0 1000:3 1000:6 1000:7 机器码 b8 00 00 e8 01 00 40 58

8、分配给中断类型号 1CH 在中断向量表中的物理地址为 00070H 9、定时器中断类型号为 08H,则其中断向量在中断向量表中的物理地址为 00020H 10、若机器进行有符号数运算,则执行下列指令后: (OF)= MOV AL,0F0H ADD AL,78H 11、若机器进行有符号数运算,则执行下列指令后: (OF)= MOV AL,0F0H ADD AL,88H 12、在文本方式下,对应显示屏幕上的每个字符,在显存中由 两 个字节表示。 0

1

13、若给定段地址为 0010H,仅通过变化偏移地址寻址,则 CPU 的寻址范围为 00100H 到_______100FFH_______(请写出物理地址)。 14、写出从端口 25H 读入一个字节数据的指令 IN AL, 25H

15、段地址为 1000H,若将内存空间 10000H~1FFFFH 当作栈使用,初始化栈为空,那 么寄存器 SP 的值应设置为(SP)=1FFFDH 16、存储下一条要执行指令的偏移地址的寄存器是 IP(指令指针寄存器) AND AX, 00FFH

17、实现将 AX 的高 8 位清零低 8 位保持不变的指令是

18、DEBUG 调试程序时单步执行的命令是 19、十进制数 45 的 BCD 码是 0100 0101

T

20、AL 中存放某大写字母的 ASCII 码,要将其转换为对应小写字母的 ASCII 码,可用 ADD AL, 20H 指令实现。

四、程序填空题
1、 以下是将 BX 中的二进制数转换为十六进制数(字母用大写 A~F)并显示的程序源文件 BINIHEX.ASM,请阅读并完成该程序。 …… START : MOV CH, 4 CL,4 BX, CL AL, BL AL,0FH AL, 30H AL, 3AH PRINTIT AL,07H DL, AL ;转变为大写字母的 ASCII 码 ;保留 AL 的低 4 位 ;将 BX 的高 4 位移至低 4 位

ROTATE: MOV ROL MOV AND ADD CMP JL ADD PRINTIT : MOV

MOV AH, 02H INT 21H ;显示字符

DEC CH JNZ MOV INT …… 2、以下是子程序 BCDIASC,请阅读程序并完成填空。 ;------功能:将十进制的两位数的 BCD 码转换为 ASCII 码并在屏幕中间显示. ;------参数:(AL)= 十进制的两位数的 BCD 码,无出口参数 BCDIASC : MOV AH, AL ROTATE AH, 4CH 21H ;判断循环是否结束

MOV

CL,4

SHR AH, CL ADD AH,30H AND AL, 0FH ADD AL,30H MOV BX,0B800H BX

MOV ES,

MOV BYTE PTR ES:[160*12+40*2] ,AH ;在屏幕中间显示 MOV BYTE PTR ES:[160*12+40*2+2] ,AL RET ;子程序结束

3、以下是采用位触发方式控制扬声器发声的子程序 SOUND,请补充完整。 ;----------功能:子程序 SOUND 控制扬声器发声 ;---------入口参数:(BX)=发声频率,控制脉宽; (CX)=发声时间,控制音长。 SOUND PROC NEAR PUSH AX PUSH DX MOV DX,CX IN AL,61H ; 从控制端口获得控制信息 AND AL, 11111100B TRIG: XOR AL, 2 ; 按 1、0 交替变换 1 号位的值 OUT 61H, AL MOV CX, BX DELAY: LOOP DELAY ; 控制发声频率 DEC DX JNZ TRIG ; 控制发声时间长度 POP DX POP AX RET SOUND ENDP

五、程序分析题
1、 已知数据段中 ARRAY 是字符串首地址、 COUNT 是字符串的长度, ARRAY 和 COUNT 均定义为字节类型。分析下面程序段完成的功能是什么? ……

MOV MOV MOV CLD LEA REP

AL,20H CH,0 CL, COUNT DI, ARRAY STOSB 用空格符(20H)清除某一字符区

…… 2、分析下面程序段完成的功能是什么? …… MOV L1: MOV INT CX,10 AH,1 21H

PUSH AX LOOP L1 MOV L2: POP MOV INT …… 3、分析下面程序段完成的功能是什么? …… MOV CH,4 ROTATE: MOV CL, 4 ROL BX,CL MOV AL, BL AND AL,0FH ADD AL,30H CMP AL, 3AH JL PRINTIT ADD AL,7 PRINTIT : MOV DL, AL MOV AH,2 INT 21H DEC CH JNZ ROTATE 二进制数(BX)到十六进制数转换并显示 …… 4、分析下面程序段完成的功能是什么? …… CX,10 DX AH,2 21H 把输入的字符逆向输出

LOOP L2

MOV LEA K2: MOV CMP JBE SUB MOV K1:INC LOOP ……

CX,10 BX,BUF AL,[BX] AL,?Z? K1 AL,20H [BX],AL BX K2 把小写字母变为大写字母 ;字符串 BUF 中存放有 10 个大、小写字母

5、分析下面程序段的功能 …… DATA SEGMENT S9 DB ┇ LEA LEA LOP: MOV MOV ADD ADD …… 上述程序段运行后,S9 开始的 10 个字节存储单元内容是什么? 01 00 03 02 05 04 07 06 09 08 AL,[SI] [SI],AL SI,2 DI,2 XCHG AL,[DI] SI,S9 DI,S9+1 0,1,2,3,4,5,6,7,8,9 DATA ENDS

MOV CX,5

LOOP LOP

六、编程题
1.请编写程序实现字符串的移动:将字符串 STR1 移动到 STR2 的位置。 DATA SEGMENT ‘Please Move the string to String2.’ 34 dup(0)

STR1 DB STR2 DB

DATA

ENDS

code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov es,ax lea si,STR1 lea di,STR2 mov cx,34 cld rep movsb mov ah, 4ch int 21h code ends end start

2.已知 GRA 数组中存放着 10 个学生的成绩,试编程实现以下功能:统计不及格 的人数存放在 COUNT 单元中并计算平均成绩存放在 AVG 单元中。 DATA GRA AVG COUNT DATA ENDS SEGMENT DB 76,68,54,80,45,92,63,58,94,85 DB DB 0 0

code segment assume cs:code,ds:data start: main proc far push ds sub ax,ax push ax mov ax,data

mov ds,ax mov ax,word ptr grade ;数组 grade 的首字 call unpass call avrage mov ax,4c00h int 21h main endp

unpass proc near ;计算不及格人数 mov cx,10 ;判断 10 次 mov dl,0 ;不及格的人数 mov si,0 ;变址指针遍历 grade 数组 mov bl,60 s: cmp grade[si],bl js p1 jmp p2 p1:inc dl p2:inc si loop s mov count,dl ret unpass endp avrage proc near sub ax,ax mov cx,10 mov bx,0 mov dx,0 ;总成绩 a1:mov al,GRA[bx] cbw add dx,ax inc bx loop a1 mov ax,dx mov bl,10 div bl

mov [avg],al mov ah,4ch int 21h ret avrage endp code ends end start

汇编语言复习题 2 注:同样是满分必备试题,答案与阿稻想洋洋师兄无关。看 清题目,真题或会稍有改动,别被坑到哦。
一、选择题
1. 下面关于汇编语言源程序的说法中正确的是 ( A. 必须要有堆栈段 C. 必须要有数据段 B ) B. 一个程序可以有多个代码段 D. 只能有一个数据段

2. 在汇编语言程序开发中,一般要按顺序经过( B )过程。 a. 用文字编辑程序编写源程序 b. 用连接程序 LINK 连接程序 c. 用 MASM 宏汇编程序,编译成目标程序 d. 用 DEBUG 程序调试程序 A. abcd B. acbd C. adcb D. adbc )文件。 .ASM—>. OBJ--> . EXE

3. 汇编语言编译程序 MASM.EXE(编译器)编译的对象是( C

A. .EXE

B. .OBJ

C. .ASM

D. .DOC )文件。 D. .DOC

4. 汇编语言源程序经过 MASM 汇编后产生( C A. .EXE B. .ASM C. .OBJ

5. DEBUG 调试程序时查看内存单元内容的命令是( A ) A. D B. R C. A D. E

6. DEBUG 调试程序时查看寄存器内容的命令是( B ) A. D B. R C. U D. A

7. 8086CPU 地址总线宽度为( C )位。 A、8 B、16 C、20 )位。 C、20 D、32 )。 D、32

8. 8086CPU 数据总线宽度为( B A、8 B、16

9. 1 个 CPU 的寻址能力为 32KB,那么它的地址总线宽度为( B A、13 B、15 C、18 ) D、32k

10. 汇编语言源程序中定义段的伪指令是( D A. REPT…ENDM C. MACRO…ENDM

B. PROC…ENDP D. SEGMENT…ENDS )

11. 汇编语言源程序中定义宏的伪指令是( C A. REPT…ENDM C. MACRO…ENDM 12. .对于下列程序段: AGAIN:MOV MOV INC INC LOOP 也可用( A AL,[SI] ES:[DI],AL SI DI AGAIN

B. PROC…ENDP D. SEGMENT…ENDS

把 [sI] 中的内容传送给 ES:[DI]

)指令完成同样的功能。 B. REP D. REPE LODSB SCASB 从串取 串扫描 )

A. REP MOVSB 串传送 C. REP STOSB 存入串

13. 设 SP 初值为 2000H,执行指令“ PUSH

AX ”后,SP 的值是( C

A. 1998H

B. 1FFFH

C. 1FFEH

D. 2002H D )

14. 设 SP 初值为 2000H,执行指令“ POP BX ”后,SP 的值是( A. 1998H B. 1FFFH C. 1FFEH ) D. 2002H

15. 执行下列指令序列后,正确的结果是( A MOV ADD ADC AL,81H AL,AL AL,AL al = 81h

al = 81h + 81h = 02h , 02h + 02h + cf = 05h C. AL=04H D

cf = 1

A. AL=05H

B. AL=204H

D. AL=205H

16. 下列指令被编译时会出错的是( A. MUL BX B. MUL CL

) mul 的操作数不能为立即数 D. MUL 56 )。

C. MUL DAT1

17. 与 MOV BX,OFFSET VAR 指令完全等效的指令是( B A、MOV BX,VAR C、LDS BX,VAR C ) C. IP D. PSW B、LEA BX,VAR

D、MOV BX, SEG VAR

18. 指令指针寄存器是( A. BP B. SP

19. 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B A. AX,BX,CX,DX C. SP, IP, BP,DX 20. 下列数据段中: BUF1 COUNT DB 3 DUP(0,2 DUP (1,2),3) B. BX,BP,SI,DI D. CS,DS,ES,SS

)

EQU $ - BUF1 B ) C. 16 D. 8

符号 COUNT 等价的值是( A. 6 B. 18

占用了 18 个字节,其中 2 DUP (1,2)占用了 2 * 2= 4 个字节,总共占用了 3 * 6 = 18 个字节

21. 设数据段中已有: DA1 DA2 DB DW 12H,34H 56H,78H

下面有语法错误的语句是( A. MOV C. MOV 22. 指令 MOV A. 立即寻址 C. 寄存器间接寻址 AL, DA1

C

) B. MOV D. MOV WORD PTR DA1,AX BYTE PTR DA2+1,AL d )

DA1+1,AX BYTE PTR

[ BX+SI ], 00H 中目的操作数的寻址方式是( B. 寄存器寻址 D. 基址变址寻址 )

23. 指令 MOV ES: [ BX ], AL 中目的操作数的寻址方式是 ( c A. 直接寻址 C. 寄存器间接寻址 B. 寄存器寻址 D. 基址变址寻址

24. 条件转移指令 JB 产生程序转移的条件是( A ) A. CF=1 C. CF=1 和 ZF=1 B. CF=0 D. CF=1 和 ZF=0 )

25、若执行 SAL SI,CL 后能将 SI 的内容乘以 8,则(CL)= ( B A、2 B、3 C、4 D、8

26. 编辑汇编语言源程序时,对于注释语句必须用英文输入法中的( B )来标示。 A. : B. ; C. , ) AL,0FH AL,0FH D. .

27. 将 AL 高 4 位清 0,应执行的指令是 ( B A. AND AL,0F0H C. OR AL,0FH B. AND D. TEST

28. 若程序中定义了 26B 的数据段 data,那么程序载入内存,该 data 段实际占用的内 存空间是( C A、 16 B )。 16 的倍数 B、26 B C、 32 B A )。 D、1KB D、 64KB

29.在 8086CPU 系统中一个段的容量最小为( A、16B B、64KB

C、512KB

有数据时最小为 16B,没数据时最小为 0 30. 下列地址信息与 0020H:03EFH 确定的内存地址不同的是( B A、 5EFH C、 005EH:000FH A C D 对应的物理地址都是 5EFH B、 203H:00EFH D、 0002H:05CFH )。

二、填空题
1、完成下列数制转换:11101010B= 234 D= EA H 2. 在存储器分段管理中,物理地址需要____2_______个 16 位寄存器来存储。 3. 对于指令 FEES DW 100 DUP(0) LENGTH= 100 ,SIZE= 200B 。

4. 设 DS=2000H,BX=1256H,变量 TABLE 的偏移地址为 20A1H, (232F7H)=3280H. 下列指令分别执行后,IP 的值各是多少? (1)JMP (2)JMP BX TABLE[BX] ; I P=______1256h_____________ ; IP________3280H_____________

5. 设(DS)=2000H, 有下列数据段,请用十六进制写出下列各字节单元的内容: ORG TABLE ADDRESS ARRAY 2100H 想知道 org 是什么?百度一下

DB 10, 3*5, 10H 占三个字节 DD DW TABLE DD 占四个字节,地址为 2000h:2100h 2 DUP(3827H, ?) 占 4 个字,8 个字节 (2) (2103H)= _____00H________ (4) (210CH)= _____38H_________

(1) (2100H)=____0AH________ (3) (2106H)=____20H__________

这里的 DS=14F8H ,(2106H)=14 题目 DS=2000H ,所以 (2106H)=20

6. 已知 X= -38D,Y= -64D,则 [X-Y]补=____1AH _______(结果用十六进制表示) 7 、 设 (DS)=2000H , (ES)=3000H , (SS)=4000H , (BX)=1000H , (BP)=1000H ,

(SI)=0001H,(DI)=0002H,(21000H)=1234H, (21002H)=5678H,(31000H)=9ABCH, (31002H)=0DEF0H,(41000H)=3456H,(41002H)=789AH 计算下列各指令中源操作数的物理地址,并指出指令执行后 AX 寄存器的内容。 (1) MOV (2) MOV (3) MOV 物理地址 PA= AX, ES:[1000H] AX,[BP] AX, [BX][SI] (AX)= ; 物理地址 PA= ; 物理地址 PA=

8.计算机中 8 位二进制有符号数(含一位符号位)的补码表示范围是 —128~127 9. 若机器进行有符号数运算,执行指令: MOV AL,0F0H ADD AL,78H 则 ADD 指令执行后:(CF)= 想知道结果也可以调试一下看看 1 ,(OF)= 0

10. 8086CPU 允许有 08H

256

个中断源,其中定时器中断的中断类型号为 N × 4 。

,在中断向量表中 N 类型对应中断向量的地址为

三、判断下列指令的正误 1、MUL 2、MOV 3、PUSH 4、SHL 5、MOV 6、 OUT AL,BL CS, BX AL AX,CX ( N ) 只有一个操作数 (n )

( N ) PUSH 和 POP 操作都是以字为单位 ( N ) 以为次数要放在 cl 中 ( N) ( N [SI][DI]两个都为变址寄存器 )

AH,BYTE PTR [SI][DI] 03FCH, AX

03FCH 超过了 255,必须用间接寻址,这里间接寻址的寄存器要用 DX, Mov dx,03fch

Out dx,ax 7、 SUB 8、 AND 9、 MOV 10、 MOV 11、 MUL 12、 CALL 13、 ADD 中 14、 ADD AL,100H 15、 MOV [BX], BX 16、 INT 17、 JMP 18、 0R 19、 CALL 20、 IN 1000H SHORT PTR S AL, 0FFFH BX 03H, AX ( n )类型不一致 ) ) n n y n ) ) ) ) AX,[BX] AL, 0FH [SI], [DI] [BX], 0AH FAR PTR S DS, AX ( 0FFH ( ( ( n ( ( ( n y y ) ) ) 两个操作数不能同时为存储器 n ) n y ) ) )段寄存器不可以用在算术指令

( y (n ( ( ( (

四、程序分析题
1. 阅读下面程序段,回答问题。 A B ┇ LEA MOV MOV LOP: SAR MOV INC LOOP DI,B CX,3 AL,A AL,1 [DI] ,AL DI LOP DB 0F8H DB 3 DUP(?)

┇ 上述程序段运行后,从 B 单元开始依次存放的数据是多少? FC FE FF F8H=1111 1000 右移一位变为 1111 1100 = FC 再右移一位变为 1111 1110 = FE 再右移一位变为 1111 1111 = FF 调试结果:

2、分析下面程序段的功能 …… DATA SEGMENT S9 DB ┇ LEA LEA LOP: MOV MOV ADD ADD …… 上述程序段运行后,S9 开始的 10 个字节存储单元内容是什么? 01 00 03 02 05 04 07 06 09 08 3、已知 BUF 开始的数据区中存放有 10 个大、小写字母,分析下面程序段完成的功能 是什么? …… MOV CX,10 AL,[SI] [SI],AL SI,2 DI,2 XCHG AL,[DI] SI,S9 DI,S9+1 0,1,2,3,4,5,6,7,8,9 DATA ENDS

MOV CX,5

LOOP LOP

LEA

BX,BUF

K2:MOV AL,[BX] CMP JBE SUB MOV K1:INC LOOP …… 实现功能:把小写字母变为大写字母 4. 分析下面程序段完成的功能是什么? …… MOV CL, 4 SHL SHL SHR OR DX, CL AX, CL BL, CL DL, BL DL=****0000 AL=****0000 BL 即 AH 的内容,AH=0000****,四个星号为原来 AX 的高四位 MOV BL, AH ;(DX:AX)联合存放了一个 32 位数据 AL,?Z? K1 AL,20H [BX],AL BX K2 (20H=32,大小写字母相差 32)

…… 功能:把 ax 的高四位写入到 dx 的低四位 5、分析下面程序段完成的功能是什么? …… MOV LOP1:MOV INT CX,10 AH,1 21H

PUSH AX LOOP LOP1 MOV LOP2: POP MOV INT DX AH,2 21H CX,10

LOOP LOP2 …… 功能:把输入的字符逆向输出 6、以下是二进制数(bx)到十六进制数转换并显示程序的源文件 BINIHEX.ASM,阅读并 完成该程序。 …… START : ROTATE: MOV CH, 4 bx 为 16 位,bx 要循环 4 次,用 ch 来计次数

mov cl,4 ROL MOV BX, CL AL, BL bx 循环左移后,原来的高四位变为低四位,把 bl 的 值送给 al, 以免后面的操作影响 bx 的值 And ADD CMP al, 0fh AL, 30H AL, 3AH 与 0fh 相与,只保留低四位 转换为 ASII 码 ASII 码大于 3Ah 则 al 的值大于 9,若小于 3Ah, 直接输出 JL PRINTIT ASII 码大于 3Ah , A 的 ASII 码为 41h, 所以要加上 7, 可以输出相应的 ABCD....

Add al,07h

PRINTIT : MOV

DL, AL

Mov ah, 02h INT Dec JNZ MOV INT …… 7、以下是子程序 BCDIASC,请阅读程序并完成填空。 ;功能:将十进制的两位数的 BCD 码转换为 ASCII 码并在屏幕中间显示. ;参数:(AL)= 十进制的两位数的 BCD 码,无出口参数 BCDIASC : MOV AH, AL ch ROTATE AH, 4CH 21H ch 为零时跳出循环 21H

MOV shr

CL, 4 ah, cl ;将 AH 的高 4 位移至低 4 位

And al, 0fh ADD AH, 30H

;保留 AL 的低 4 位 ;转变为 ASCII 码

Add al, 30h MOV Mov BX,0B800H es , bx

MOV BYTE PTR ES:[160*12+40*2] ,AH MOV BYTE PTR ES:[160*12+40*2+2] ,AL ret

;显示十位数 ;显示个位数

;子程序结束,返回主程序

8. 下面程序通过子程序调用,将数据段中字数组 ARRAY 的 COUNT 个元素求和,并将 结果送 SUM 单元(COUNT、SUM 都是字单元),分析这段程序后补充完整程序中的 空格部分。 …… MOV PUSH MOV PUSH MOV PUSH CALL ……. SUMPRO PUSH PROC NEAR AX BX, OFFSET SUM BX BX, OFFSET ARRAY BX BX, OFFSET COUNT BX SUMPRO ;调用子程序计算

PUSH PUSH PUSH PUSH MOV MOV MOV MOV MOV XOR NEXT : ADD ADD LOOP MOV POP POP POP POP POP RET SUMPRO ……

CX SI DI BP BP, SP SI, DI, CX, DI, [BP+ 14 [BP+ 12 [DI] [BP+ 16 ] ] ]

这题不懂的话, 可以找师兄我。

AX, AX AX, [SI] SI, NEXT [ DI BP DI SI CX AX ], AX 2

ENDP

请画出用堆栈传送参数地址时,堆栈最满时的状态。

五、编程题 1、 从 BUF1 单元开始存放有 10 个字节的字符串, 使用串传送指令编写指令序列将 BUF1
中的数据复制到 BUF2 开始的 10 个字节单元。

lea si,BUF1 ;si的段地址为ds lea di,BUF2 ;di的段地址为es mov cx,10 cld

rep movsb
2、编写指令序列,完成用空格符( 20H )清除某一字符区的工作,字符区首地址为 ARRAY,其长度为 COUNT,ARRAY 和 COUNT 均为字节存储单元。

lea si,ARRAY mov al,20h mov cx,10 cld rep stosb
3.编写一个显示字符串的宏定义 PRINT, 字符串以”$”作为结束符号,字符串首地址 STRADDR 为变元。

PRINT macro STRADDR lea dx,STRADDR mov ah,09h int 21h endm

4、编写子程序 CLEAR 实现清除屏幕的功能。(课件第九章有)

mov ah,06h mov al,0 mov bh,07h mov ch,0 mov cl,0 mov dh,24 mov dl,79 int 10h
5、编写指令把 12 行 0 列到 22 行 79 列的屏面清除。

mov ah,07h mov al,0 mov bh,70h mov ch,12 mov cl,0 mov dh,22

mov dl,79 int 10h
6. 写出采用位触发方式控制发声的子程序 SOUND. 参数: BX:发声频率,控制脉宽 CX: 发声时间,控制音长。

Mov bx,100 In al,61h And al,11111100b sound:xor al,2 Out 61h,al Mov cx,140h Wait:loop wait Dec bx Jnz sound

7、 已知在内存数据段中 GRA 开始单元连续存放着 10 个学生的成绩,试编程实现以下 功能:计算平均成绩(只取整数部分)存放在内存单元 AVG 中。 DSG SEGMENT GRA AVG DSG DB DB ENDS 90,58,70,80,68,98,66,83,96,72 ?

mov ax,DSG mov ds,ax mov dx,0 mov cx,10 lea si,GRA next:mov al,[si] cbw add dx,ax inc si

loop next mov ax,dx mov bl,10 div bl mov [avg],al mov ah,4ch int 21h
8、已知在内存数据段中 STR 开始单元连续存放着 10 个大小写字母,试编程实现以下 功能:将 10 个字母中的小写字母全部转换为大写字母。 DSG STR DSG SEGMENT DB ENDS “BbcDeFgHIj”

mov ax,DSG mov ds,ax lea si,STR next:mov al,[si] cmp al,'Z' jbe exit sub al,20h mov [si],al exit:inc si loop next mov ah,4ch int 21h


相关文章:
广东海洋大学汇编语言复习题
广东海洋大学汇编语言复习题_IT/计算机_专业资料。大家好好学习,爱生活,爱海大。注:此为广东海洋大学汇编语言复习题,学会满分都不成 问题。 答案由阿稻想洋洋整理...
广东海洋大学数据库期末试题和答案3套(完整版,考试必出)
广东海洋大学数据库期末试题答案3套(完整版,考试必出)_计算机软件及应用_IT/...(难度系数 C)正确答案:数据结构 数据操作 完整性约 束 3.关系数据语言可以分...
广东海洋大学图书馆考试题目及答案
广东海洋大学图书馆考试题目及答案_成考_成人教育_教育专区。广东海洋大学 图书馆...新生图书馆考试题库 暂无评价 210页 2下载券 ©2015 Baidu 使用百度前必读 ...
软件工程复习题-广东海洋大学-附部分答案版
软件工程复习题-广东海洋大学-附部分答案版_工学_高等教育_教育专区。软件工程总复习一、 选择题 1. 在( )模型中是采用用例驱动和架构优先的策略,使用迭代增量建...
广东海洋大学JAVA历年考题_答案
广东海洋大学JAVA历年考题_答案_文学_高等教育_教育专区。广东海洋大学JAVA历年考题_答案班级: 《 Java 程序设计 》课程试题 √考试 课程号:姓名: □A 卷□B卷 ...
微机去年试卷及答案,广东海洋大学
微机去年试卷及答案,广东海洋大学_理学_高等教育_...汇编语言程序中的标号具有的属性有_段基址__ __、...再详细的把老师考试总 复习 PPT 看多两遍,考试...
广东海洋大学java历年考题及答案
广东海洋大学java历年考题及答案_哲学_高等教育_教育...《 Java 程序设计 》课程试题 张 √考试 9500437 ...()Java 是区分大小写的语言,关键字的大小写不能...
广东海洋大学单片机复习提纲部分答案
广东海洋大学单片机复习提纲部分答案_哲学_高等教育_...单片机复习提纲(上)一. 单项选择题: (10 分) 1...汇编语言——是一种面向机器的语言,使用汇编语言直接...
软件工程复习题-广东海洋大学-附部分答案版
软件工程复习题-广东海洋大学-附部分答案版_教育学_高等教育_教育专区。软件工程...D、SQL 语言 D、脚本 85、不适合作为数据处理的语言是( A、Prolog B、C ...
2015年广东海洋大学军事理论试题和答案
2015年广东海洋大学军事理论试题答案_军事_高等教育_教育专区。2015年广东海洋大学军事理论试题答案,亲测真实~~~开卷考更轻松了 ...
更多相关标签: