您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 汇编语言程序设计习题册[1]
1汇编语言习题册(汇编语言课程设计组编制)2汇编语言程序设计习题一.填空题1.汇编语言是一种_____,它用_____来表示操作码,用——或——来表示操作数或操作数地址,它与_________是一一对应的。2.计算机中的指令由__________和________两部分组成。3.指出下列指令源操作数的寻址方式:MOVAX,ARRAYF[SI]_______MOVAX,ES:[BX]_______MOVAX,[200H]_______MOVAX,[BX+DI]_______MOVAX,BX_______MOVAX,1200H_______MOVAX,20[BX+SI]_______MOVAX,[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寄存器的内容:MOVAX,1200H;(AX)=_______MOVAX,BX;(AX)=_______MOVAX,[1200H];(AX)=_______MOVAX,[BX];(AX)=_______MOVAX,1100[BX];(AX)=_______MOVAX,[BX][SI];(AX)=_______MOVAX,1100[BX][SI];(AX)=_______5.条件码中最主要的是_____、_____、______、______。6.对于乘法、除法指令,其目的操作数存放在______或______中,而其源操作数可以用除_______以外的任一寻址方式。7.当指令“SUBAX,BX”执行后,CF=1,说明最高有效位_____;对____数,说明操作结果溢出。8.指令SAR可用来_______除2,而指令SHR则可用来_______除2。9.假设(DS)=B000H,(BX)=080AH,(0B080AH)=05AEH,(0B080CH)=4000H,执行指令“LESDI,[BX]”后,(DI)=_______,(ES)=________。10.对于指令XCHGBX,[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)=_______;3执行指令JMPTABLE[BX]后,(IP)=_______;执行指令JMPBX后,(IP)=________。12.在1000H单元中有一条二字节指令JMPSHORTLAB,如果其中偏移量分别为30H、6CH、0B8H,则转向地址LAB的值分别为______、______、_______。13.数据段中有以下定义:ARRAY1EQU16HARRAY2DW16H请指出下面两条指令的寻址方式:MOVAX,ARRAY1;寻址方式:__________MOVAX,ARRAY2;寻址地址:__________14.下面两个语句的区别在于_______、________。X1EQU1000HX2=1000H15.指令“ANDAX,STR1ANDSTR2”中,STR1和STR2是两个已赋值的变量,两个AND的区别是______、_______。16.条件转移指令的目标地址应在本条件转移指令的下一条指令地址的_____个字节范围内。17.指令LOOPZ/LOOPE是结果_____或____发生转移的指令。而指令LOOPNZ/LOOPNE则是结果或发生转移的指令。18.调用指令CALL可分为________、_________、________和________等四种调用。19.换码指令XLAT完成的操作是______。它经常用于把一种代码转换为另一种代码。如果执行此操作,应首先建立一个字节表格,但表格的长度不能超过_______。20.下面两条指令执行后,(AH)=_______。(AL)=________:MOVAH,10HMOVAL,1021.在汇编语言中,一个过程有NEAR和FAR两种属性。NEAR属性表明主程序和子程序______,FAR属性表示主程序和子程序________。22.如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,执行指令“MOVAX,TABLE”后,(AX)=________;而执行指令“LEAAX,TABLE”后,则(AX)=_______。23.串处理指令规定源寄存器使用______,源串在______段中;目的寄存器使用_____,目的串必须在______段中。24.近过程(NEAR)的RET指令把当前栈顶的一个字弹出到____;远过程(FAR)的RET指令弹出一个字到_____后又弹出一个字到_____;IRET指令是______指令,它从堆栈顺序弹出三个字分别送到______、_______和_______中。25.______过程定义结束伪指令,与______配套使用。______或是段定义结束伪指令,与______配套使用;或是结构定义结束伪指令,与______配套使用。_____是宏定义结束伪指令,与______配套使用。_______是一个宏模块汇编结束伪指令。26.对于指令:MOVBX,((PORT_VALLT5)AND20)OR((PORT_VALGE5)AND30)4当PORT_VAL5时,汇编结果为:MOVBX,______;否则,汇编结果为:MOVBX,______。27.宏定义中允许使用宏调用,其限制条件是_______。28.宏的使用要经过三个步骤为__________、__________和___________。29.从外设发出中断请求到CPU响应中断,有两个控制条件是起决定作用的,它们是______和_______。这两个条件分别由_______和________控制。30.一个有16个字的数据区,它的起始地址为70A0:DDF6,那么该数据区的最后一个字单元的物理地址为_______H。31.COM文件只有一个段并限制在64KB之内,COM程序的堆栈是由_____自动产生的,数据定义在______段内。COM程序总是从偏移地址________开始执行。32.子程序又称为________,由伪操作_________定义,由_________结束,属性可以是________或_________。33.在标准子程序中,它所使用的工作寄存器一般要存入_____保存,在返回调用程序之前,再_________它们的内容。34.填入正确的过程属性。CODE1SEGMENT………SUBPROC________………RETSUBENDP………CALLSUB………CODE1ENDS…………CODE2SEGMENT………CALLSUB………CODE2ENDS35.宏定义体包括实现子功能的指令和伪操作,如果宏定义体中有一个或多个标号,则必须用__________伪操作列出所有的标号。36.令(AL)=98H,(BL)=12H,则执行指令MULBL后,(AX)=_______,(OF)=_____,(CF)=_______;而执行指令MULBL后,它的结果是(AX)=_________,(OF)=_______,(CF)=_______。537.执行下列指令序列后,完成的功能是将(DX,AX)的值__________MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BLMOVBL,DLSHRDX,CLSHRBL,CLORAH,BL或者采用下面的方法,将(DX,AX)向右移四位。MOVCX,04NEXT:SHRDX,1RCRAX,1LOOPNEXT38.对于下面的数据定义:A1DW20DUP(?)A2DW20DUP(?)A3DW‘987654321’…………MOVAX,LENGTHA1MOVBX,LENGTHA2MOVCX,LENGTHA3各条指令执行后,相应寄存器的内容为:(AX)=_______,(BX)=_______,(CX)=_______。39.对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容。TABLE1DB?TABLE2DW20DUP(?)TABLE3DB‘ABCD’…………MOVAX,TYPETABLE1(AX)=_________MOVBX,TYPETABLE2(BX)=_________MOVCX,LENGTHTABLE2(CX)=_________MOVDX,SIZETABLE2(DX)=_________MOVSI,LENGTHTABLE3(SI)=_________40.某程序的数据段定义如下,请填写完整。DATASEGMENTTABDB‘MICROSOFT’DB‘MS-DOS6.22’6DW1234DB‘IBMPS/2’TABLENEQU___________;数据长度DATAENDS41.程序段如下:DATASEGMENTORG2000HTWO=2NUMDB3,4WORDSDW1011H,2022HCHAR1DB2DUP(?)TENEQU10CHAR2DB‘5’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:PUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVAL,TWOMOVWORK,ALTWO=TWO-1ADDAL,TWOMOVWORK+1,ALRETMAINENDPCODEENDSENDSTART程序执行后,内存单元DS:2000H—DS:200AH的值分别是_____、______、______、______、______、_______、_______、________、________、_______、_______,TWO的值为_______。42.下列程序段运行后,A单元的内容为_______。DATASEGMENTADW0BDW0CDW230,20,54DATAENDS7CODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVBX,OFFSETCMOVAX,[BX]MOVB,AXMOVAX,2[BX]ADDAX,BMOVA,AXRETSTARTENDPCODEENDSENDSTART43.分析以下程序段:ADDAX,BXJNOL1JNCL2SUBAX,BXJNCL3JNOL4JMPSHORTL5如果AX和BX的内容给定如下:AXBX①147B80DC②B56854B7③42C8608D④D0239FD0⑤94B7B568该程序执行后,程序转向______、______、_______、_______、_______。44.设(SS)=0FFA0H,(SP)=00B0H,(AX)=8057H,(BX)=0F79H,执行指令“PUSHAX”后,(SP)=______;再执行指令PUSHBXPOPAX后,(SP)=______,(AX)=______,(BX)=______。845.阅读下面的程序段。堆栈段分配了_____个ABCD结构的空间,堆栈长度为____个字。如果程序中没有再设置SS、SP,那么经过汇编、连接后,(SP)=______。ABCDSTRUCDLD_BPDW?RET_IPDW?RET_CSDW?PAR_2DW?PAR_1DW?ABCDENDSS_SEGSEGMENTSTACKABCD10DUP()S_SEGEND
本文标题:汇编语言程序设计习题册[1]
链接地址:https://www.777doc.com/doc-3392449 .html