汇编语⾔程序设计习题册[1]
汇编语⾔习题册(汇编语⾔课程设计组编制)
汇编语⾔程序设计习题
⼀.填空题
1.汇编语⾔是⼀种_____,它⽤_____来表⽰操作码,⽤——或——来表⽰操作数或操作数地址,它与_________是⼀⼀对应的。
2.计算机中的指令由__________和________两部分组成。
3.指出下列指令源操作数的寻址⽅式:
MOV AX, ARRAYF[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] _______
4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,I(21203)=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)=_______
5.条件码中最主要的是_____、_____、______、______。
6.对于乘法、除法指令,其⽬的操作数存放在______或______中,⽽其源操作数可以⽤除_______以外的任⼀寻址⽅式。7.当指令“SUB AX,BX”执⾏后,CF=1,说明最⾼有效位_____;对____数,说明操作结果溢出。
8.指令SAR可⽤来_______除2,⽽指令SHR则可⽤来_______除2。
9.假设(DS)=B000H,(BX)=080AH,(0B080AH)=05AEH,(0B080CH)=4000H,执⾏指令“LES DI,[BX]”后,(DI)=_______,(ES)=________。
10.对于指令XCHG BX,[BP+SI],如果指令执⾏前,(BX)=6F30H,(BP)=0200H,(SI)=0046H,
(SS)=2F00H,(2F246H)=4154H,则执⾏指令后,(BX)=______,(2F246H)=_______。
11.假设(DS)=2000H,(BX)=21256H,(SI)=528FH;位移量TABLE=20A1H,(232F7H)=3280H,
(264E5H)=2450H,则
执⾏指令JMP [BX][SI]后,(IP)=_______;
执⾏指令JMP TABLE[BX]后,(IP)=_______;
执⾏指令JMP BX后,(IP)=________。
12.在1000H单元中有⼀条⼆字节指令JMP SHORT LAB,如果其中偏移量分别为30H、6CH、0B8H,则转向地址LAB的值分别为______、______、_______。
13.数据段中有以下定义:
ARRAY1 EQU 16H
ARRAY2 DW 16H
请指出下⾯两条指令的寻址⽅式:
MOV AX,ARRAY1 ;寻址⽅式:__________
MOV AX,ARRAY2 ;寻址地址:__________
14.下⾯两个语句的区别在于_______、________。
X1 EQU 1000H
X2=1000H
15.指令“AND AX,STR1 AND STR2”中,STR1和STR2是两个已赋值的变量,两个AND 的区别是______、_______。16.条件转移指令的⽬标地址应在本条件转移指令的下⼀条指令地址的_____个字节范围内。
17.指令LOOPZ/LOOPE是结果_____或____发⽣转移的指令。⽽指令LOOPNZ/LOOPNE则是结果或发⽣转移的指令。18.调⽤指令CALL可分为________、_________、________和________等四种调⽤。
19.换码指令XLAT完成的操作是______。它经常⽤于把⼀种代码转换为另⼀种代码。如果执⾏此操作,应⾸先建⽴⼀个字节表格,但表格的长度不能超过_______。
20.下⾯两条指令执⾏后,(AH)=_______。(AL)=________:
MOV AH,10H
MOV AL,10
21.在汇编语⾔中,⼀个过程有NEAR和FAR两种属性。NEAR属性表明主程序和⼦程序______,FAR属性表⽰主程序和⼦程序________。
22.如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,执⾏指令“MOV AX,TABLE”后,
(AX)=________;⽽执⾏指令“LEA AX,TABLE”后,则(AX)=_______。
23.串处理指令规定源寄存器使⽤______,源串在______段中;⽬的寄存器使⽤_____,⽬的串必须在______段中。24.近过程(NEAR)的RET指令把当前栈顶的⼀个字弹出到____;远过程(FAR)的RET 指令弹出⼀个字到_____后⼜弹出⼀个字到_____;IRET指令是______指令,它从堆栈顺序弹出三个字分别送到______、_______和_______中。
25.______过程定义结束伪指令,与______配套使⽤。______或是段定义结束伪指令,与______配套
使⽤;或是结构定义结束伪指令,与______配套使⽤。_____是宏定义结束伪指令,与______配套使⽤。_______是⼀个宏模块汇编结束伪指令。
26.对于指令:
MOV BX,((PORT_VAL LT5)AND 20)OR((PORT_VAL GE 5)AND 30)
当PORT_VAL<5时,汇编结果为:
MOV BX,______;
否则,汇编结果为:
MOV BX,______。
27.宏定义中允许使⽤宏调⽤,其限制条件是_______。
28.宏的使⽤要经过三个步骤为__________、__________和___________。
29.从外设发出中断请求到CPU响应中断,有两个控制条件是起决定作⽤的,它们是______和_______。这两个条件分别由_______和________控制。
30.⼀个有16个字的数据区,它的起始地址为70A0:DDF6,那么该数据区的最后⼀个字单元的物理地址为_______H。31.COM⽂件只有⼀个段并限制在64KB之内,COM程序的堆栈是由_____⾃动产⽣的,数据定义在______段内。COM程序总是从偏移地址________开始执⾏。
32.⼦程序⼜称为________,由伪操作_________定义,由_________结束,属性可以是________或_________。33.在标准⼦程序中,它所使⽤的⼯作寄存器⼀般要存⼊_____保存,在返回调⽤程序之前,再_________它们的内容。34.填⼊正确的过程属性。
CODE1 SEGMENT
………
SUB PROC ________
………
RET
SUB ENDP
………
CALL SUB
………
CODE1 ENDS
……
……
CODE2 SEGMENT
………
CALL SUB
………
CODE2 ENDS
35.宏定义体包括实现⼦功能的指令和伪操作,如果宏定义体中有⼀个或多个标号,则必须⽤__________伪操作列出所有的标号。
36.令(AL)=98H,(BL)=12H,则执⾏指令MUL BL后,(AX)=_______,(OF)=_____,(CF)=_______;⽽执⾏指令MUL BL后,它的结果是(AX)=_________,(OF)=_______,(CF)=_______。
37.执⾏下列指令序列后,完成的功能是将(DX,AX)的值__________
MOV CL,04
SHL DX,CL
MOV BL,AH
SHL AX,CL
SHR BL,CL
OR DL,BL
MOV BL,DL
SHR DX,CL
SHR BL,CL
OR AH,BL
或者采⽤下⾯的⽅法,将(DX,AX)向右移四位。
MOV CX,04
NEXT: SHR DX,1
RCR AX,1
LOOP NEXT
38.对于下⾯的数据定义:
A1 DW 20 DUP(?)
A2 DW 20 DUP(?)
A3 DW ‘987654321’
………
MOV AX,LENGTH A1
MOV BX,LENGTH A2
MOV CX,LENGTH A3
各条指令执⾏后,相应寄存器的内容为:(AX)=_______,(BX)=_______,(CX)=_______。39.对于下⾯的数据定义,各条MOV指令单独执⾏后,请填充有关寄存器的内容。
TABLE1 DB ?
TABLE2 DW 20 DUP(?)
TABLE3 DB ‘ABCD’
…………
MOV AX,TYPE TABLE1 (AX)=_________
MOV BX,TYPE TABLE2 (BX)=_________
MOV CX,LENGTH TABLE2 (CX)=_________
MOV DX,SIZE TABLE2 (DX)=_________
MOV SI,LENGTH TABLE3 (SI)=_________
40.某程序的数据段定义如下,请填写完整。
DATA SEGMENT
TAB DB ‘MICROSOFT’
DB ‘MS-DOS 6.22’
DW 1234
DB ‘IBM PS/2’
TABLEN EQU___________ ;数据长度
DATA ENDS
41.程序段如下:
DATA SEGMENT
ORG 2000H
TWO=2
NUM DB 3,4
WORDS DW 1011H,2022H
CHAR1 DB 2 DUP (?)
TEN EQU 10
CHAR2 DB ‘5’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
START:PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AL,TWO
begin和start区别MOV WORK,AL
TWO=TWO-1
ADD AL,TWO
MOV WORK+1,AL
RET
MAIN ENDP
CODE ENDS
END START
程序执⾏后,内存单元DS:2000H—DS:200AH的值分别是_____、______、______、______、______、_______、_______、________、________、_______、_______,TWO的值为_______。
42.下列程序段运⾏后,A单元的内容为_______。
DATA SEGMENT
A DW 0
B DW 0
C DW 230,20,54

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。