汇编语言程序设计真题精选.docx
- 文档编号:8894594
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:18
- 大小:12.88KB
汇编语言程序设计真题精选.docx
《汇编语言程序设计真题精选.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计真题精选.docx(18页珍藏版)》请在冰点文库上搜索。
汇编语言程序设计真题精选
[填空题]1MOVAX,0AH的源操作数的寻址方式是()
参考答案:
立即寻址
[填空题]2写出8086操作数的寻址方式。
8086的存储器寻址方式有哪些?
参考答案:
操作数的寻址方式有:
①立即(数)寻址。
②寄存器寻址。
③存储器寻址。
存储器寻址方式有:
①立即寻址。
②寄存器寻址。
③直接寻址。
④寄存器间接。
⑤寄存器相对。
⑥基址变址。
⑦相对基址变址。
[填空题]3试写出由逻辑地址计算物理地址的计算公式。
写出8086在存储器寻址下,存储单元的逻辑地址的表示形式。
参考答案:
P.A=段基址*16+偏移量
L.A=段基址:
偏移量
[填空题]4在物理内存地址为00002H起的字单元内存放3412H,请用图表示出它们在存储器里存放的情况。
参考答案:
[填空题]5寄存器间接寻址方式可使用哪些寄存器?
参考答案:
在8086中:
BX/BP/SI/DI
[填空题]6寄存器相对寻址方式中的位移量可以用什么形式表达?
参考答案:
位移量=EA—基址—(变址*比例因子)
[填空题]7基址变址寻址方式的可用寄存器有哪些?
参考答案:
[BX]
[SI]/[BX]
[DI]
[填空题]8写出相对基址变址寻址方式的偏移地址EA的计算公式。
参考答案:
EA=位移量+基址+变址
[填空题]9编写循环结构程序,进行下列计算,结果存入RESULT内存单元2+4+6+8+10+……+100。
参考答案:
CODESEGMENTASSUMECS:
CODERESULTDW?
START:
XORAX,AXMOVCX,50MOVBX,2AGAIN:
ADDAX,BXADDBX,2LOOPAGAINMOVRESULT,AXMOVAX,4C00HINT21HCODEENDSENDSTART
[填空题]10在内存物理地址为65780H起的连续地址空间内存放了一个值为12345678H的双字型数据,请用图表示出它们在存储器里存放的情况。
参考答案:
[填空题]11LOOP指令使用的循环计数器是什么?
参考答案:
CX.
[填空题]12编写循环结构程序,进行下列计算,结果存入RESULT内存单元11+22+33+44+……+99。
参考答案:
CODESEGMENTASSUMECS:
CODERESULTDW?
START:
XORAX,AXMOVCX,9MOVBX,11AGAIN:
ADDAX,BXADDBX,11LOOPAGAINMOVRESULT,AXMOVAX,4C00HINT21HCODEENDSENDSTART
[填空题]13子程序调用时传递参数的三种基本方法是什么?
参考答案:
①通过寄存器传送。
②通过堆栈传送。
③通过变量传送。
[填空题]14已知ARRAY是5行5列的有符号字数组,编写程序,进行下列计算(假设和仍然为16b,不会产生溢出)求该数组第3行所有元素之和(行号从0开始)
参考答案:
CODESEGMENTASSUMECS:
CODE,DS:
DATASTART:
MOVAX,DATAMOVDS,AXMOVAX,0;累加器在循环之前清零MOVCX,5;计数器置初值MOVSI,3*5*2;第3行第0列元素在数组内的位移NEXT:
ADDAX,ARRAY[SI]ADDSI,2;SI指向本行下一列元素LOOPNEXTMOVSUM,AXMOVAX,4C00HINT21HCODEENDSENDSTART
[填空题]15串操作指令在使用前应做哪些准备工作?
参考答案:
①把存放在数据段中的源串首地址(如反向传送则应是末地址)放入源变址寄存器中。
②把将要存放数据串的附加段中的目的串首地址(或反向传送时的末地址)放入目的变址寄存器中。
③把数据串长度放入计数寄存器。
④建立方向标志。
[填空题]16MOV[BX],CL的源操作数的寻址方式()
参考答案:
寄存器寻址
[填空题]17已知ARRAY是5行5列的有符号字数组,编写程序,进行下列计算(假设和仍然为16b,不会产生溢出)求该数组反对角线上所有元素之和。
参考答案:
CODESEGMENTASSUMECS:
CODE,DS:
DATASTART:
MOVAX,DATAMOVDS,AXMOVAX,0;累加器在循环之前清零MOVCX,5;计数器置初值MOVSI,4*2;第0行第4列元素在数组内的位移NEXT:
ADDAX,ARRAY[SI]ADDSI,(5-1)*2;SI指向反对角线上下一个元素LOOPNEXTMOVSUM,AXMOVAX,4C00HINT21HCODEENDSENDSTART
[填空题]18MOVAX,[200H]的源操作数的寻址方式()
参考答案:
直接寻址
[填空题]19变量X,Y,Z均为一字节压缩BCD码表示的十进制数,写出指令序列,求它们的和(用2字节压缩BCD码表示)。
参考答案:
XORAX,AX;清AX,用于存放2字节结果MOVAL,XADDAL,Y;完成X+YDAA;压缩BCD码加法调整ADCAH,0;把可能的进位收集到AH中;AH中最大的可能值为2,因此不需要BCD加法调整ADDAL,Z;完成X+Y+ZDAA;压缩BCD码加法调整ADCAH,0;把可能的进位收集到AH中;计算完成,结果(2字节压缩BCD码)在AX中
[填空题]20MOVAX,[100H]的源操作数的寻址方式()
参考答案:
直接寻址
[单项选择题]
21、为了使执行串操作指令时,地址按减量方式处理应使用指令()。
A.CLI
B.STI
C.CLD
D.STD
参考答案:
D更多内容请访问《睦霖题库》微信公众号
[填空题]22MOVAX,[BX]的源操作数的寻址方式()
参考答案:
寄存器间接寻址
[填空题]23数组LIST2内存有20个压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM2双字单元。
参考答案:
CODESEGMENTASSUMECS:
CODELIST2DB12H,34H,56H,15H,82H,52H,48H,19H,31H,63HDB22H,33H,44H,55H,66H,77H,88H,99H,11H,39HSUM2DD?
START:
XORAX,AX;累加器清零XORBX,BX;地址指针置初值MOVCX,20;循环计数器置初值
ONE:
//ADDAL,LIST2[BX];加入一个压缩BCD数DAA;调整XCHGAH,AL;交换AH和ALADCAL,0;收集进位(百位、千位)DAA;高位(百位、千位)调整XCHGAH,AL;恢复AH和AL;
(AH)=千位、百位,(AL)=十位、个位INCBX;修改指针LOOPONE;循环控制MOVWORDPTRSUM2,AX;保存
千、百、十、个位MOVWORDPTRSUM2+2,0;高位清零MOVAX,4C00HINT21HCODEENDSENDSTART
[填空题]24MOVDX,[BP]的源操作数的寻址方式()
参考答案:
寄存器间接寻址
[填空题]25数组LIST3内存有20个压缩BCD码表示的双字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM3双字单元。
参考答案:
CODESEGMENTASSUMECS:
CODELIST3DW1234H,3456H,5678H,1523H,8263H,DW5234H,4856H,1926H,3177H,6389HDW2211H,3322H,4433H,5544H,6655HDW7766H,8877H,9988H,1167H,3944HSUM3DD?
START:
XORDX,DXXORAX,AX;累加器清零LEABX,LIST3;地址指针置初值MOVCX,20;循环计数器置初值
ONE:
//ADDAL,CS:
[BX];加入第一字节压缩BCD数(十位、个位)DAA;调整XCHGAH,AL;交换AH和ALINCBX;修改指针,指向高位字节(千位、百位)ADCAL,CS:
[BX];高位累加,并收集低位进位DAA;高位(百位、千位)调整XCHGAH,AL;恢复AH和AL;
(AH)=千位、百位,(AL)=十位、个位INCBX;修改指针XCHGDX,AX;交换AX和DXADCAL,0;收集千位上的进位DAA;调整,得到和的十万位和万位XCHGDX,AX;恢复DX和AXLOOPONE;循环控制MOVWORDPTRSUM3,AX;保存
千、百、十、个位MOVWORDPTRSUM3+2,DX;保存十万位和万位MOVAX,4C00HINT21HCODEENDSENDSTART
[单项选择题]
26、把若干个模块连接起来成为可执行文件的系统程序是()
A.汇编程序
B.连接程序
C.机器语言程序
D.源代码程序
[填空题]27MOVCX,[BX]
[SI]的源操作数的寻址方式()
参考答案:
基址变址寻址
[填空题]28设(BX)=0E3H,变量VALUE中存放内容为79H,指出下列指令单独执行后的结果。
ANDBX,VALUE
参考答案:
指令“ANDBX,VALUE”执行后,(BX)=0061H
[单项选择题]
29、已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确
的是()。
A.DIVBX
B.CWDIDIVBX
C.XORDX,DXDIV
BX
D.CBWIDIV
BX
[填空题]30MOVDI,[BX+20]的源操作数的寻址方式()
参考答案:
相对基址寻址
[填空题]31设(BX)=0E3H,变量VALUE中存放内容为79H,指出下列指令单独执行后的结果。
XORBX,0FFH
参考答案:
指令“XORBX,0FFH”执行后,(BX)=001CH
[单项选择题]
32、子程序是用过程定义语句()定义的。
A.PROC
ENDP
B.PROC
ENDS
C.CALL
RET
D.PROC
RET
参考答案:
A
[填空题]33MOVDH,VAL[BX]的源操作数的寻址方式()
参考答案:
相对基址寻址
[填空题]34设(BX)=0E3H,变量VALUE中存放内容为79H,指出下列指令单独执行后的结果。
ANDBX,0
参考答案:
指令“ANDBX,0”执行后,(BX)=0000H
[单项选择题]
35、主程序和所调用的子程序在同一代码段中,子程序的属性定义为()。
A.TYPE
B.WORD
C.NEAR
D.FAR
参考答案:
C
[填空题]36MOVDS,VAL的源操作数的寻址方式()
参考答案:
直接寻址[填空题]37某密码的加密规则为:
‘0’→‘A’,‘1’→‘B’,‘2’→‘C’,……。
按照以下要求编写程序。
把明文“96541833209881”翻译为密文。
参考答案:
CODESEGMENTASSUMECS:
CODETEXT1DB“96541833209881”TEXT2DB14DUP(?
)START:
MOVBX,0MOVCX,14NEXT:
MOVAL,TEXT1[BX];取出一字节明文ADDAL,“A”-“0”;转换成密文MOVTEXT2[BX],AL;保存INCBXLOOPNEXTMOVAX,4C00HINT21HCODEENDSENDSTART
[单项选择题]
38、若AX=3500H,CX=56B8H,当AND
A.1400H
B.77F8H
C.0000H
D.0FFFFH
参考答案:
A
AX,CX指令执行后,AX=()。
[填空题]39MOVBX,VAL[BX]
[SI]的源操作数的寻址方式()
参考答案:
相对基址变址寻址
[填空题]40编写程序,从键盘上输入一行明文,按照题
3.17的规则翻译成密文,向显示器输出。
参考答案:
DATASEGMENTMESSDB0DH,0AH,“Inputsometextplease:
$”OUTMESSDB0DH,0AH,“Thetextafterconvert:
”BUFFERDB81,?
,81DUP(?
)DATAENDSCODESEGMENTASSUMECS:
CODE,DS:
DATASTART:
MOVAX,DATAMOVDS,AXLEADX,MESSMOVAH,09HINT21H;输出提示信息LEADX,BUFFERMOVAH,0AHINT21H;输入一行明文MOVCL,BUFFER+1MOVCH,0;输入字符个数送CXLEABX,BUFFER+2;首字符地址送BXNEXT:
MOVAL,[BX]ADDAL,“A”-“0”;将一字节明文转换成密文MOV[BX],AL;保存INCBXLOOPNEXTMOVBYTEPTR[BX],“$”;送字符串结束标记MOVWORDPTRBUFFER,2020H;缓冲区前2字节改为空格LEADX,OUTMESSMOVAH,09HINT21H;输出转换以后的结果MOVAX,4C00HINT21HCODEENDSENDSTART
[单项选择题]
41、DA2DB“AB”,“CD”后,AX中的值是()。
A.
“AD‟
B.
“BC‟
C.
“DA‟
D.
“CB‟
参考答案:
D
MOVAX,WORDPTRDA2+1
上述语句执行[填空题]42MOVBX,ARRY[BX]
[DI]的源操作数的寻址方式()
参考答案:
相对基址变址寻址
[填空题]43编写程序,使用库子程序,从键盘上输入8个有符号字数据,求它们的和,以十进制格式输出。
参考答案:
INCLUDE
YLIB.HDATASEGEMNTMESS1DB0DH,0AH,“Inputanumberplease:
$”MESS2DB0DH,0AH,“Thesumis:
$”DATAENDSCODESEGMENTASSUMECS:
CODE,DS:
DATASTART:
MOVAX,DATAMOVDS,AXXORBX,BX;BX用作累加器,清零MOVCX,8;循环计数器置初值AGAIN:
LEADX,MESS1CALLREADINT;输入一个数据(在AX中)ADDBX,AX;累加LOOPAGAINLEADX,MESS2MOVAX,BXCALLWRITEINT;输出8个数的和CALLCRLFMOVAX,4C00HINT21HCODEENDSENDSTART
[单项选择题]
44、执行PUSH
A.16*SS+BP
B.16*DS+BP
C.16*CS+BP
D.16*SS+SP
参考答案:
D
BP指令时,目的操作数的物理地址表达式是()。
[填空题]45MOVDX,49H的源操作数的寻址方式()
参考答案:
立即寻址
[填空题]46阅读以下程序,指出它的功能。
参考答案:
MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL把32位二进制代码(DX,AX)联合左移4位。
[单项选择题]
47、检查二个无符号数的关系,若要实现AL>=BL时分支去LOP1处,那么在“CMPAL,BL”指令后应跟的分支指令是()。
A.JNCLOP1
B.JALOP1
C.JCLOP1
D.JGELOP1
参考答案:
A
[填空题]48ACHG[BX],AH的源操作数的寻址方式()
参考答案:
寄存器寻址
[填空题]49已知8086系统某存储单元物理地址为12345H,可以与它对应的“逻辑地址”中,段基址最大值,最小值分别是多少?
参考答案:
可以与物理地址12345H对应的逻辑地址中,段基址的最大值为1234H,最小值为0235H。
分析:
偏移地址取最大值时,对应的段基址为最小。
偏移地址可选的最大值为0FFF5H(最后一位必须为5),因此最小的段基址=(12345H-0FFF5H)/10H=0235H。
偏移地址取最小值时,对应的段基址最大。
偏移地址可选的最小值为0005H(最后一位必须为5),因此最大的段基址=(12345H-0005H)/10H=1234H。
[填空题]50已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。
SHRDX,1
参考答案:
指令“SHRDX,1”执行之后,(DX)=005CH。
[单项选择题]
51、完成将AX清零,并且使CF清零,下面错误的指令是()。
A.SUBAX,AX
B.ANDAX,0
C.XORAX,AX
D.MOVAX,0
参考答案:
D
[填空题]52ANDAX,ES:
[buf]的源操作数的寻址方式()
参考答案:
直接寻址
[填空题]53已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。
SHLDX,CL
参考答案:
指令“SHLDX,CL”执行之后,(DX)=05C8H
[填空题]54CPU使用“寄存器”有什么好处?
为什么?
参考答案:
CPU使用寄存器主要有两个好处:
(1)寄存器位于CPU内部,访问寄存器比访问内存储器速度快;
(2)寄存器数量大大少于内存储器单元个数,标识寄存器使用的二进制代码比标识内存储器单元使用的二进制代码少得多,可以缩短指令长度。
[单项选择题]
55、下面()描述属于子程序嵌套调用。
A.某程序调用子程序
B.某程序调用子程序1,子程序又调用了子程序2。
C.某程序调用一个或多个子程序
D.某程序调用了两个子程序
[填空题]56XORAX,[DI]的源操作数的寻址方式()
参考答案:
寄存器间接寻址
[填空题]57已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。
RORDX,CL
参考答案:
指令“RORDX,CL”执行之后,(DX)=2017H
[填空题]58用8位补码完成下列运算,用二进制“真值”的格式给出运算结果,并指出运算后
CF、OF、ZF、SF、PF标志位的状态。
-100-120。
参考答案:
[-100]补=10011100,[-120]补=10001000,[-100-120]补=00100100,[-100-120]=+00100100(溢出)COZSP=01001
[填空题]59已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。
ROLDX,CL
参考答案:
指令“ROLDX,CL”执行之后,(DX)=05C8H
[单项选择题]
60、执行CALL子程序调用指令时,CPU会自动地将断点压入堆栈保护。
断点指的是()。
A.CALL指令所在的地址
B.CALL指令的下一条指令的首地址
C.子程序入口地址
D.CALL指令所在的段地址
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 精选