汇编语言期末复习题
汇编语言期末复习题
第1章:基础知识
1、在汇编语言程序的开发过程中使用宏功能的顺序是(C )。
A、宏定义,宏调用B、宏定义,宏展开
C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用
2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是(B )。
A、名字项B、操作项
C、操作数项D、注释项
3、可屏蔽中断就是它的请求是否被CPU 响应要受(IF )的控制。
4、使用LINK 连接命令,执行后可生成文件的扩展名为(EXE )。
5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在堆栈段中,段地址在SS 寄存器中。
6、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号)表示注释的开始。
7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送寄存器后执行INT 21H。
8、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)。
9、CPU 暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为中断源。
10、在字符串操作指令中,DS∶SI 指向源串,ES∶DI 指向目的串。
11、计算机系统通过TK
12、键盘I/O、显示I/O和打印I/O分别对应16H 、10H 和17H 号中断。
13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。每个字的第一个字节为显示字符的码,第二个字节为显示字符的属性。TK
14、简述上机运行汇编语言程序的过程。JD
答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe 文件,最后再运行。
15、简述程序中指令和伪指令的区别。
答:能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。
伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。
16、十六进制数88H,可表示成下面几种形式,请找出错误的表示(④)。
①无符号十进制数136
②带符号十进制数-120
③压缩型BCD 码十进制数88
④8位二进制数-8的补码表示
17、指令指针寄存器是(IP)。
18、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B)
A.名字的第一个字符可以是大写英文字母及小写英文字母
B.名字的第一个字符可以是字母、数字及、@、_
C.名字的有效长度≤31个字符
D.在名字中不允许出现$
19、CS寄存器属于(段寄存器)。
20、已知物理地址(371F0H)=12H,(371F1H)=34H,(371F2H)=56H,如从地址371F0H 中取出一个字的内容是(3412H )。
21、一个有16个字的数据区,它的起始地址是70A0H∶DDF6H,则这个数据区最末一个字单元的物理地址是(7E814H )。
22、简述上机运行汇编语言程序的过程。JD 答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe 文件,最后再运行。
第2章:8086/8088的寻址方式和指令系统
1、下列指令属于基址加变址寻址方式的是(MOV DX,DS:[BP][SI])。
2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是(D )。
A.1B.2C.3D.由指令长度决定的
3、下列属于合法的指令是(D )
A.MOVDS,ESB.MOV[SI],[DI]
C.MOVAX,BLD.MOV[DI],BL
4、若AX=349DH,CX=000FH。则执行指令AND AX,CX后,AX的值是(000DH )。
5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(85B92H )
6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B )
A、AX,BX,CX,DXB、BX,BP,SI,DI
C、SP,IP,BP,DXD、CS,DS,ES,SS
7、对寄存器AX 的内容乘以4的正确指令序列是(SHL AX,1SHL,AX,1
8、执行INC 指令除对SF、ZF有影响外,还要影响的标志位是(OF,AF,PF)。
9、设DH=10H,执行NEG DH 指令后,正确的结果是(DH=0F0HCF=1)。
10、下列传送指令中有语法错误的是(A )。
A、MOVCS,AXB、MOVDS,AX
C、MOVSS,AXD、MOVES,AX
11、下面指令执行后,改变AL 寄存器内容的指令是(D )。
A、TESTAL,02HB、ORAL,AL
C、CMPAL,BLD、ANDAL,BL
12、执行除法指令后,影响的标志位是(AF,CF,OF,PF,SF,ZF都不确定)。
13、执行下面指令序列后,结果是(AX=0FF82H)。
MOV AL,82H
CBW
14、与MOV BX,OFFSETVAR 指令完全等效的指令是(D )。
A、MOVBX,VARB、LDSBX,VAR
C、LESBX,VARD、LEABX,VAR
15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是(PARA )。
16、MOVSP,3210H
PUSH AX 执行上述指令序列后,SP寄存器的值是(320EH )。
17、BUFDW 10H DUP(3DUP(2,10H),3,5)
上述语句汇编后,为变量BUF 分配的存储单元字节数是(100H )。
18、MOVAH,7896H
ADD AL,AH
上述指令执行后,标志位CF 和OF 的值是(CF=1,OF=0)。
19、完成将带符号数AX 的内容除以2的正确指令是(SHR AX,1)。
20、在汇编语言程序中,对END 语句的叙述正确的是(C )。
A.END语句是一可执行语句B.END语句表示程序执行到此结束
C.END语句表示源程序到此结束D.END语句在汇编后要产生机器码
MOV BX,AX
ADD AX,BX
A.1234HB.0EDCCHC.6DCCHD.
24、将DX 的内容除以2,正确的指令是(C)。
A.DIV2B.DIVDX,2
C.SARDX,1D.SHLDX,1
25、有如下指令序列:
ORG 40H
DA1DW 0AB12H,8574H)。
……
MOV AX,DA1
MOV BX,OFFSETDA1
上述指令执行后,寄存器AX 和BX 的值分别为(AB12H,40H)。
29、AL和VAR 字节单元中分别存放一个带符号数,执行CMP AL,VAR时,如AL>VAR,那么溢出位和符号位的关系是(OF=SF)。
30、下面是关于汇编语言程序中使用RET 的描述,不正确的是(C )。
A.每一个子程序中允许有多条RET 指令。B.每一个子程序结束之前一定要有一条RET 指令。
C.每一个子程序中只允许有一条RET 指令。D.以过程形式表示的代码段,一定有RET 指令存在。
31、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是(CX=0或ZF=0)。
33、重复前缀指令REP 的重复次数由CX 决定。
35、设(SP)=100H,(AX)=0FFFFH
STC
PUSH AX
ADC AX,0
PUSH AX
POP BX 上述程序段运行后,(BX)=0,(SP)=0FEH 。
36、假设数据段定义如下:
DA1DW ’C’,’D’
DA2DB 18DUP(?)
DA3DW $-DA2
……
MOV BX,DA3
MOV AX,DA1
上述指令执行后,BX寄存器中的内容是12H(或18),AH寄存器中的内容是00H,AL寄存器中的内容是43H 。DATA SEGMENT
ARRAY2DW 7,89H,10
VAL EQU ARRAY2-ARRAY1
请问:该数据段已占有12(或0CH) 字节的存储空间。
39、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是(C )
A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位
B.指令OR DX,1000H执行后,将DX 最高位置1,其余各位置0
C.指令AND AX,OFH执行后,分离出AL 低四位
D.NOTAX,执行后,将AX 清0
40、完成对CL 寄存器的内容乘以4的正确操作是(C )
A.ROLCL,1B.MUL4
ROL CL,1
C.SHLCL,1D.MOVCL,2
SHL CL,1SHL CL,CL
43、REPZCMPSW 指令,重复执行的终止条件是(CX=0或ZF=0)
44、下面程序段执行后,AL中的内容是(21H )
MOV AX,8833H
45、完成将累加器AL 清零,并使进位标志CF 清零,下面错误的指令是(①)。
①MOV AL,00H ②AND AL,00H
③XOR AL,AL ④SUB AL,AL
46、下列指令执行后总是使CF=0,OF=0的是(AND)。
47、完成同指令XCHG AX,BX相同功能的指令或指令序列是(④)。
①MOV AX,BX②MOV BX,AX
③PUSH AX
POP BX
④MOV CX,AX
MOV AX,BX
MOV BX,CX
50、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是(CX=0或ZF=0)。
53、AL=0AH,下列指令执行后能使AL=05H的是(C )
A.NOTAL B.ANDAL,0FHC.XORAL,0FHD.ORAL,0FH
DW‘AB’,‘CD’,‘EF’,‘GH’
┇
MOV AX,DA1+3
指令执行后AX 中的内容是(‘FC’)。
55、在汇编语言程序中,对END 语句的叙述正确的是(③)。
①END 语句是一可执行语句②END 语句表示程序执行到此结束
③END 语句表示源程序到此结束④END 语句在汇编后要产生机器码
57、下面指令执行后,变量DAB 中的内容是(0F5H)。
DAW DW2A05H
DAB DB 0FAH
:
MOV AL,BYTEPRT DAW
SUB DAB,AL
58、执行下列指令后,正确的结果是(②)。
MOV AL,100
MOV BL,-2
①AL=100H
BL=02H
②AL=64H
BL=0FEH
③AL=64H
BL=82H
④AL=100H
BL=0FEH
63、在串操作程序中,通常在重复前缀指令REPZ 或REPNZ 后,选用的串操作指令是___STOS____或___CMP__才有实际意义。
64、已知:BX=1357H,DI=2000H,DS=2000H,CS=4000H,分别指出下面各指令中存储器操作数的物理地址。
(1)MOVAL,[BX]
21357H
(2)MOVCS:[BX+DI],AH
43357H
66、下列语句在存储器中分别为变量分配多少字节?
(1)AD2DW 10DUP(?),10答案:(10+1)*2=22
(2)AD3DD 100DUP(?)答案:100*4=400
67.
68、在指令系统中,段内、段间返回均为RET 指令。试回答:
(1)执行段内返回RET 指令时,执行的操作是:栈顶内容→IP,SP+2→SP
(2)执行段间返回RET 指令时,执行的操作是:①栈顶内容→IP,SP+2→SP②栈顶内容→CS,SP+2→SP
70、设某数据段:
DATA SEGMENT
ORG 20H
NUM1=854、DA1
NUM2=NUM1+10H
DA1DB 'COMPUTER'
DB 0AH,0DH
COUNT EQU $-DA1
DA2DW'CO','MP','UT','ER'
DATA ENDS
试回答:(1)DA1的偏移地址是:(2)COUNT的值是(3)DA2+5字节单元的内容是71、已知
AX=0FF60H,CF=1
MOV DX,96
XOR DH,0FFH
SBB AX,DX执行上述指令序列后,AX=_________0__________,CF=______0__________。
72、设寄存器AL,BL,CL中内容均为76H,
XOR AL,0FH
AND BL,0FH
OR CL,0FH执行上述指令序列后,AL=______79H___,BL=__06H___CL=_7FH___。
73、已知
AX=0A33AH,DX=0F0F0H
AND AH,DL
XOR AL,DH
NEG AH
NOT AL 执行上述指令序列后,AH=____60H____,AL=_____35H_。CXFX
74、假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后,DX中的值。
(1)SHRDX,1(2)RCRDL,1(3)RCLDX,CL
答:(1)005CH (2)00DCH (3)05CCH
77、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如:JD
PUSH AX\
PUSH BX \保护现场
PUSH CX /
PUSH DX/
:
}恢复现场
试写出恢复现场时的指令序列。
答:
POP DX
POP CX
POP BX
POP AX
80、ADW 1234H
B DW 5678H
:
PUSH A
PUSH B
POP A
POP B
试回答:
①上述程序段执行后(A)=__________,(B)=_____
②设执行前SP=200H,执行后SP=____________
答:
①(A)=5678H(2分)(B)=1234H(2分)
②SP=2000H(2分)
81、现有下列程序段:
MOV AX,6540H
MOV DX,3210H
MOV CL,04
SHL DX,CL
MOV BL,AH
SHL AX,CL
SHR BL,CL
OR DL,BL
试问上述程序段运行后,82、分析下面程序段,
MOV AL,200
SAR AL,1
MOV BL,AL
MOV CL,2
SAR AL,CL
ADD AL,BL试问程序段执行后(BL)=__0E4H_(AL)=__0DDH___
83、DA3EQU WORD PTR DA4
DA4DB 0ABH,89H
┇
SHR DA3,1
MOV DX,DA3
SHL DA4,1
MOV CX,DA3上述程序段运行后,CX=___44AAH___,DX=__44D5H___。
STC
PUSH AX
ADC AX,0
PUSH AX
POP BX 上述程序段运行后,(BX)=0,(SP)=0FEH 。
86、已知:
BX=4567H
NEG BX
INC BX
NEG BX
DEC BX 87、已知数据段中定义
DAT1DB 12H,34H,56H,78H
MOV CX,0
MOV AX,WORDPTR DAT1
MOV CL,DAT1+3当程序段执行完后88、DA1DB 83H,72H,61H,94H,5AH
┇
MOV CX,WORDPTR DA1
AND CX,0FH
MOV AL,DA1+3
SHL AL,CL上述指令序列执行后,AL=__0A0H____,CL=__03H____。
90、执行下列程序段后,回答问题。
ORG 1221H MOV BX,OFFSETNUM
NUM DW 12H MOV CL,BYTEPTR NUM+1
…MOV CH,TYPENUM
MOV AX,NUMHLT
请问:(AX)=______,(BX)=______,(CX)=______。
答:(AX)=0012H(BX)=1221H(CX)=0200H
91、执行下列指令后AX、BX寄存器的内容?
MOV SI,10H
MOV AX,1234H
MOV [SI+12H],AX
LEA BX,[SI]
MOV [SI+14H],BX
答:AX为1234H,BX为22H
LES BX,DWORD PTR [SI+12H]
97、DA1DB 83H,72H,61H,94H,5AH
┇
MOV CX,WORDPTR DA1
AND CX,0FH
MOV AL,DA1+3
SHL AL,CL上述指令序列执行后,AL=___0A0H____,CL=___03H____。
98、DA3EQU WORD PTR DA4
DA4DB 0ABH,89H
┇
SHR DA3,1
MOV DX,DA3
SHL DA4,1
MOV CX,DA3上述程序段运行后,CX=____44AAH_____,DX=_____44D5H_______。
第3章:8086汇编语言程序格式
1、指令JMP FAR PTR DONE 属于(段间转移直接寻址)。
2、下列叙述正确的是(C)。DX
A.对两个无符号数进行比较采用CMP 指令,对两个有符号数比较用CMPS 指令
B.对两个无符号数进行比较采用CMPS 指令,对两个有符号数比较用CMP 指令
C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令
D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令
3、一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是(12C59H)。
4、某存储单元的物理地址是12345H,可以作为它的段地址有(D )DX
A.2345HB.12345H
C.12340HD.1234H
5、在执行DAA 指令,当高四位BCD 码校正时产生进位,如要把此进位值送入AH 中,对这进位值的操作应是(进位值在CF 中,校正后根据CF 内容再加在AH 中)
6、执行后使BX=0的同时也使CF=0,OF=0的指令是(XOR BX,BX)
7、在执行下列指令时,需要使用段寄存器DS 的指令是(D )
A.STOSWB.ADDAL,CL
C.NEGBX D.INCDA[BX]
8、无论BH 中原有的数是奇数或偶数,若要使BH 中的数一定为奇数,应执行的指令是(OR BH,01H)
9、比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(ZF=1)
10、使用DOS 系统功能调用时,使用的软中断指令是(B )
A.INT21B.INT10H
C.INT16H D.INT21H
11、十六进制数0FFF8H 表示的十进制正数为____+65528____,表示的十进制负数为____-32760____。
12、CPU标志位。时表示无符号数运算产生溢出,而当标志位__是表示带符号数运算产生溢出。
14、在程序执行过程中,IP寄存器中始终保存的是(下一条指令的首地址)。
15、PSW寄存器中共有___6___位条件状态位,有___3___位控制状态位。()。
第4章:顺序程序设计
1、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(
A、CMPB、SUBC、ANDD、MOVD )。
第5章:分支程序设计
1、检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMPAL,BL”指令后应跟的分支指令是(JC LOP1)DX
2、下面指令序列测试BH 中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为()。
TEST BH,01H3、测试BL 寄存器内容是否与数据4FH 相等,若相等则转NEXT 处执行,可实现的方法是(②)。
①TEST BL,4FH
JZ NEXT
②XOR BL,4FH
JZ NEXT
③AND BL,4FH[
JZ NEXT
④OR BL,4FH
JZ NEXT
4、当一个带符号数大于0FBH 时程序转移,需选用的条件转移指令是(JNLE)。
5、
MOV BL,64H
MOV CL,03H
XOR AX,AX
AGAIN:ADDAL,BL
ADC AH,0
DEC CL
JNZ AGAIN
问:(1)该程序段完成的功能是:将AX 内容乘3送BX 中6、
MOV DL,AL
NOT DL
TEST DL,04H
JE NEXT
┇
NEXT:…
若上述程序段执行时产生分支,说明AL 中的数第几位一定为1?程序段执行后CF 是多少?
第2位;CF=0
12、
AND AL,AL
JZ BRCH1
RCR AL,1
JZ BRCH2
RCL AL,1
INC AL
JZ BRCH3
:
上述程序运行后,试回答:BRCH1(2)当(AL)=__1___时,程序转向BRCH2BRCH3
18、下面程序的功能是什么?
MOV AX,X
CMP AX,Y
JGE LAB
XCHG AX,Y
LAB:MOVX,AX 答:选择X,Y中的较大值存入X 中
19、某程序欲用单个字符显示的2号功能调用去显示STRING 中的字符串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。
STRING DB‘COMPUTER’,‘$’
┇
MOV BX,0FFSETSTRING
LOP:MOVDL,[BX]
MOV AH,02H
INT 21H
__________CMP[BX],24H________
JNE LOP
23、试编制一源程序,统计DA1字单元中含0的个数,如统计的个数为奇数,则将进位位置1,否则进位位清0。DATA SEGMENT
DA1DW XXXX
DATA ENDS
答:CODESEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,DA1
MOV CX,16
XOR BL,BL
AGAIN:MOV AL,[SI]
HL AL,1
JC NEXT
INC BL
NEXT:INCSI
LOOP AGAIN
TEST BL,01H
JNE L1
CLC
JMP DONE
L1:STC
DONE:MOV AH,4CH
INT 21H
CODE ENDS
END START
26、下列程序片段用来分别统计ARRAY 数组中奇数和偶数的个数。请在空白处填写合适的指令。
DATA SEGMENT
ARRAY DW 23ABH,1570H,567,1765H,46,5210H
COUNT EQU ($-ARRAY)/2
DA1DB ?
DA2DB ?
DATA ENDS
……
LEA SI,ARRAY
MOV CX,COUNT
LOP1:MOVAX,[SI]
JZ LOP2
INC BL
JMP LOP3
LOP2:INCBH
LOP3:DEC CX
JNZ LOP1
MOV DA1,BL
MOV DA2,BH
28、写一个把字符串中的大写字母改写为小写字母的子程序(近过程)。设字符串以0为结束标志。
;子程序名:STRLWR;功能:把字符串中的所有大写字母改写为小写字母
;入口参数:DS∶BX=存放改写所需字符串的缓冲区首地址;出口参数:无
STRLWR PROC
PUSH AX
PUSH SI
MOV SI,BX
AGAIN:MOV AL,[SI]
OR AL,AL
JZ OK
CMP AL,’A’
JB NEXT
CMP AL,’Z’
JA NEXT
OR AL,20H(或者ADD AL,30H)
MOV [SI],AL
NEXT:INC SI
JMP AGAIN
OK:POP SI
POP AX
RET
STRLWR ENDP
第6章:循环程序设计
1、循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是(CX≠0且ZF=0)
2、循环指令LOOPNZ 终止循环的条件是(CX=0,或ZF=1)。
3、检查BUF 的内容是否为正偶数,如是正偶数,则0TAL。下面程序段正确的是(C )。
A、MOVAL,BUFMOV AL,0
JS K1K1:……
SHR AL,1B、MOVAL,BUF
JNC K1AND AL,11
JNZ K2MOV AL,0K2:……
4、下列描述中,执行循环的次数最多的情况是(A )。
A.MOVCX,0
B.MOVCX,1
LOP:LOOPLOP
LOP:LOOPLOP
C.MOVCX,0FFFFH
D.MOVCX,256
LOP:LOOPLOP
LOP:LOOPLOP
6、实现将DX:AX中存放的32位数扩大四倍,正确的程序段是(③)。
①SHL AX,2
ROL DX,2②RCL AX,2
SHL DX,2③MOV CX,2
LOP:SHLAX,1RCL DX,1LOOP LOP ④SHL AX,1
SHL AX,1RCL DX,1RCL DX,1
7、在下列指令中,件码中的CF 位。
A.JMPNEXT B.JCNEXT C.INCBX
D.SHLAX,1
8、下列指令执行时出错的是(A)。
A.ADDBUF1,BUF2B.JMPDWORD PTR DAT
[BX]C.MOVAX,[BX+DI]NUM D.TESTAL,08H
9、在下列指令的表示中,不正确的是(C)。A.MOVAL,[BX+SI]B.JMPSHORT DONI
C.DEC[BX]D.MULCL
10、在进行二重循环程序设计时,下列描述正确的是(A)。
A.外循环初值应置外循环之外;内循环初值
应置内循环之外,外循环之内
B.外循环初值应置外循环之内;内循环初值
应置内循环之内
C.内、外循环初值都应置外循环之外
MOV AX,0MOV BX,1MOV CX,100A:ADDAX,BXINC BX LOOP A HLT
执行后(BX)=(101)。
13、上题的程序执行后(AX)=(5050)。14、对于下列程序段:
AGAIN:MOVAL,[SI]MOV ES:[DI],ALINC SI INC DI
LOOP AGAIN
也可用__REP MOVSB __指令完成同样的功能。16、程序段如下:
BLK1DB 46,84,34,-5,20,122,73:
MOV CX,7LEA S1,BLK1
NEXT:MOV AL,[SI]INC SI
TEST AL,81HLOOPZ NEXT MOV BL,[SI]:
请回答程序段运行后:(BL)=___14H或20______STRING DB 100DUP(?)
MOV AX,SEG STRING
MOV DS,AX
LEA SI,STRING MOV CX,100
LAB:MOV AL,[SI]
CMP AL,’a’JB LAB1CMP AL,’z’JA LAB1
SUB AL,32MOV [SI],A
LOOP LAB
大写字母’A’-‘Z’
18、现有下列数据段:
DATA SEGMENT
STR1DB‘ABCDEFGHIJKL'COUNT EQU -STR1
BUF DB COUNT DUP(0)DATA ENDS
下面程序段是实现把STR1中所有字符逆向
传送到BUF 缓冲区(即STR1中第一个字符送到BUF 的最后一个单元,STR1中最后一字符送到BUF 的第一个单元)。试把程序中所空缺的指令填上。
MOV SI,OFFSETBUF-1MOV DI,OFFSETBUF MOV CX,COUNT
LOOP:MOVSB
______SUB SI,2__或____ADD DI,2__
LOOP LOP
19、下述程序段完成计算2~20之间的偶数的和,并存于AX 中。试把空白处填上适当的指令。
XOR AX,AXMOV BX,0
CONT:ADD AX,BX
LOOP CONT (2)XCHG AL, [DI](3)INC SI
21、试编制一源程序,统计DA1字单元中含0的个数,如统计的个数为奇数,则将进位位置1,否则进位位清0。
DATA SEGMENT
DA1DW XXXX DATA ENDS 答:
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX LEA SI,DA1
MOV CX,16
XOR BL,BL
AGAIN:MOV
AL,[SI]
HL AL,1JC NEXT
INC BL NEXT:INCSI
LOOP AGAIN TEST BL,01H
JNE
L1
CLC
JMP DONE
L1:STC
DONE:MOV AH,4CH
INT 21H
CODE ENDS
END START
22、下述程序段完成计算2~20之间的偶数的和,并存于AX 中。试把空白处填上适当的指令。
XOR AX,AXMOV BX,0
MOV CX,10或MOV CX,0AHCONT:ADD AX,BX
LOOP CONT
第7章:子程序设计
1、主程序和所调用的子程序在同一代码段中,子程序的属性应定义为(C )。A.TYPE B.WORD C.NEAR D.FAR
2、MOV AL,38HMOV BL,49HCALL SUBO INC AL DEC CL ┇
SUBO PROC ADD AL,BLMOV CL,ALDAA RET
SUBO ENDP
上述程序段运行后,AL=________88H_____________,CL=________80H__________。