汇编语言程序设计复习(附答案完整版).docx

上传人:wux****ua 文档编号:9062032 上传时间:2020-04-02 格式:DOCX 页数:10 大小:52.01KB
返回 下载 相关 举报
汇编语言程序设计复习(附答案完整版).docx_第1页
第1页 / 共10页
汇编语言程序设计复习(附答案完整版).docx_第2页
第2页 / 共10页
汇编语言程序设计复习(附答案完整版).docx_第3页
第3页 / 共10页
点击查看更多>>
资源描述
一、 选择1下面指令执行后,改变AL寄存器内容的指令是( D )。A.TEST AL,02H B.OR AL,ALC.CMP AL,BL D.AND AL,BL2对寄存器AX的内容乘以4的正确指令序列是( B )。A.SHR AX,1 /SHR AX,1 B.SHL AX,1/ SHL,AX,1C.ROL AX,1 /ROL AX,1 D.RCR AX,1/ RCR AX,13设DS=8225H,DI=3942H,指令NEG BYTE PTRDI操作数的物理地址是( A )A.85B92H B.86192H C.BB690H D.12169H4指令JMPFARPTRDONE属于 C A段内转移直接寻址 B段内转移间接寻址 C段间转移直接寻址 D段间转移间接寻址5将DX的内容除以2,正确的指令是CADIV2 BDIVDX,2 CSARDX,1 DSHLDX,1 6编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( D )。A.CMP B.SUB C.AND D.MOV7汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。A.名字项 B.操作项 C.操作数项 D.注释项8假设执行ADD指令后AX=006EH,再执行AAA指令,AX中的值是( B )A. 14H B. 0104H C. 74H D. 04H9用MOV指令将十进制数89以非压缩BCD码格式存入AX,可使用的指令是( D )A. MOV AX,89 B. MOV AX,0809C. MOV AX,89H D. MOV AX,0809H10下列语句中能与“DA1 DB 32H,34H”语句等效的是( A )A. MOV DA1,32H B. MOV DA1,32C. MOV WORD PTR DA1,3234H D. MOV WORD PTR DA1,24 MOV DA1+1,34H MOV DA1+1,34 11使用DOS功能调用时,子程序的编号应放在寄存器中( A )A. AH B. AL C. AX D. 任意指定 12 下列语句中能实现留空8个字节单元的语句是( D )A. DA1 DT ?B.DA2 DW?,? C. DA3 DD ?D.DA4 DQ ?13指令JMPFARPTRDONE属于 C A段内转移直接寻址 B段内转移间接寻址 C段间转移直接寻址 D段间转移间接寻址14下列叙述不正确的是BA. 在不改变堆栈段寄存器的情况下,堆栈大小为64KBB. 紧跟设置堆栈段寄存器指令可以是设置堆栈指针以外的任何指令C. 中断服务程序的返回地址在堆栈中D. 堆栈中数据存放的特点是先进后出15一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是CA12CSBH B12B6BH C12C59H D12BFEH16在下列指令的表示中,不正确的是CAMOVAL,BX+SI BJMPSHORTDONI CDECBX DMULCL17在进行二重循环程序设计时,下列描述正确的是AA外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B外循环初值应置外循环之内;内循环初值应置内循环之内 C内、外循环初值都应置外循环之外 D内、外循环初值都应置内循环之外,外循环之内18条件转移指令JNE的测试条件为AAZF=0 BCF0 CZF=1 DCF=1 19将DX的内容除以2,正确的指令是CADIV2 BDIVDX,2 CSARDX,1 DSHLDX,1 20已知BX=2000H,SI=1234H,则指令MOVAX,BX+SI+2的源操作在(A)中。A数据段中偏移量为3236H的字节 B附加段中偏移量为3234H的字节 C数据段中偏移量为3234H的字节 D附加段中偏移量为3236H的字节 21执行如下程序: MOVAX,0 MOVBX,1 MOVCX,100 A:ADDAX,BX INCBX LOOPA HLT 执行后(BX)=CA99 B100 C101 D10222上题的程序执行后(AX)=BA5000 B5050 C5100 D5150 23在下列指令中,_D_指令的执行会影响条件码中的CF位。AJMPNEXT BJCNEXT CINCBX DSHLAX,124下面指令序列执行后完成的运算,正确的算术表达式应是 D MOVAL,BYTEPTRX SHLAL,1 DECAL MOVBYTEPTRY,AL Ay=x*2+1 Bx=y*2+1 Cx=y*2-1 Dy=x*2-1 25在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。BA占内存空间小,但速度慢 B占内存空间大,但速度快 C占内存空间相同,速度快 D占内存空间相同,速度慢 26在程序执行过程中,IP寄存器中始终保存的是BA上一条指令的首地址 B下一条指令的首地址 C正在执行指令的首地址 D需计算有效地址后才能确定地址二、简答1假定(DX)=10111001B,(CL)=3,(CF)=1,试确定下列各条指令单独执行后,DX中的值。(3分) (1)SHRDX,1 (2)RCRDL,1 (3)RCLDX,CL 答:(1)005CH(2)00DCH(3)05CCH2写出完成下述功能的程序段:(8分) (1)传送25H到AL寄存器 (2)将AL的内容乘以2 (3)传送15H到BL寄存器 (4)AL的内容乘以BL的内容 并请写出最后(AX)=? 答:(1)MOV AL,25H(2)SHL AL,1 (3)MOV BL,15H(4)MUL BLAX=612H3.指出下列指令的错误原因。(14分)(1)MOV BX,AL 操作数类型不同(2)MOV 256,CX (3)POP CS (4)MUL 45H (5)MOV DS,2000H(6)JMP WORD PIR LOO (7)IN AL,3F8H5.设某数据段:DATA SEGMENT ORG 20HNUM1=8 NUM2=NUM1+10H DA1 DB COMPUTER DB 0AH,0DHCOUNT EQU $-DA1DA2 DW CO,MP,UT,ERDATA ENDS试回答:(1)DA1的偏移地址是什么? (2)COUNT的值是什么? (3)DA2+5字节单元的内容是什么? 答:(1)0020H(2)002AH-0020H=0AH=10 (3)”U”6.某程序段如下: MOVDX,0EFADHMOVAX,1234HMOVCL,4SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CL ORDL,BL 上面的程序段执行完后,DX、AX的内容是什么?DX=FAD0HAX=2340H三、填空1计算机语言分为 机器 语言、 汇编 语言和 高级 语言。223D= 10111 B,100101011B= 12B H。38086系统的操作数分为 立即操作数 、 寄存器操作数 和 存储器操作数 三种类型。48086 CPU内部共有 14 个 16 位的寄存器。5汇编语言的编译程序一般用 Edit ,调试程序一般用 debug 。四、程序分析1现有如下程序段: DATASEGMENTORG0020HDA1DW12H,23HDA2DB11H,21HDA3EQU1234H DA4EQU$-DA2 DA5DB31H,32H DATAENDS 请回答:(1)该程序段已占有的存储字节数是多少? (2)符号名DA4的值是多少?符号名DA5的值是多少? 答:(1)该程序段已占有的存储字节数是8个字节。 (2)符号名DA4的值为2,符号名DA5的值是0026H。2阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG100H BLOCKDWX1,X2,XN COUNTEQU($-BLOLOK)/2 RESULTDWCOUNT,? LEABX,BLOCK-2 MOVCX,RESULT XORAX,AX GOON:ADDBX,2 CMPAX,BX JAENEXT MOVAX,BX NEXT:LOOPGOON MOVRESULT+2,AX 程序段执行完,回答下述问题 RESULT+2字存储单元的内容=_MAX(X1,X2,XN)_ BX=_100H+2(COUNT-1)_ 程序循环次数=_COUNT_ 五、程序填空题1在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并保存在AX寄存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。请在程序中的空格处填入适当指令使其完整。 LEABX,TABLEMOVCX,10 MOVSUM,AX MEXT:(1)ADD AL,BX ADCAH,0 JNCDON (2)MOV AX,SUM JCEND0 DON:INCBX(3)LOOP NEXT ENDO:HLT2BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。 MOVCX,32H LEASI,BEG MOVDI,SI (1) ADD DI 99DON:MOVAL,SI (2) XCHG AL,DIMOVSI,AL (3) INC SIDECDI LOOPDON HLT 3下面程序段完成用单个字符输入的1号功能调用,从键盘输入10个字符,然后用2号功能调用以相反的顺序显示输出这10个字符。请在空白处添上适当的指令(每一空白处只添一条指令)。 MOV CX,10LOP1:MOV AH,1 INT 21H PUSH AX LOOP LOP1 MOV CX,10LOP2: POP DX MOV AH,2 INT 21H LOOP LOP2 4下面程序段完成将以BUFF为首地址的内存区域全部存储0FFH数据。请在空白处添上适当的指令(每一空白处只添一条指令)。BUFF DB 20H DUP(?) LED DI,BUFF MOV AX,0FFFFH MOV CX,10H CLD REP STOSW六、编制程序题1试编写一个汇编语言子程序,要求将包含任意字符、以0结尾的字符串中的小写字母转换成大写字母。 assume cs:code,ds:datadatasg segment db Beginners All-purpose Symbolic Instruction Code.,0datasg endscodesg segmentbegin:mov ax,data mov ds,ax mov si,0 call letterc mov ah,4ch int 21hletterc:push ax s:mov al,si mov ah,0 mov cx,ax jcxz return cmp al,61h jb next cmp al,91h ja next and al,11011111b mov si,al next:inc si jmp short s return:pop ax retcodesg endsend begin2写一程序段,求双字长数DXBX的相反数。 NEGDXNEGAXSBBDX,03 设在内存单元SQTAB首址开始存放了015的平方数表。要求用直接查表法编一程序,求出A单元中给定数(=15的平方值送B单元保存。 答: DATASEGMENTSQTABDB0,1,4,9,16,25,36,49,64,81 DB100,121,144,169,196,225 ADB12 BDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA STARTPROCFAR PUSHDX XORAX,AX PUSHAXMOVAX,DATA MOVDS,AXMOVBX,OFFSETSQTAB MOVAL,A XLATMOVB,AL RETSTARTENDP CODEENDS ENDSTART4 编写一个子程序,对两个128位数据相加。 答:书上221页 5.编写程序求: X+10H (X10)STACKSEGMENT PARA STACK STACK DB 100 DUP(0) STACK ENDS DATASEGMENT XDW ? YDW ? DATAENDS CODESEGMENTASSUME CS: CODE,DS:DATA START:MOV AX , DATAMOV DS , AXMOV AX , XCMP AX , 0JGECASE23ADDAX , 10H;第一种情况的计算结果JMP RESULTCASE23:CMPAX , 10DJGCASE3MOVBX,30DIMULBX;第二种情况的计算结果JMPRESULT CASE3:SUBAX , 190H;第三种情况的计算结果 RESULT:MOVY , AX;结果保存到变量Y中 MOVAH , 4CHINT21H CODEENDSEND START第10页 共6页
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!