欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    汇编语言程序设计习题集.doc

    • 资源ID:17632501       资源大小:348KB        全文页数:15页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汇编语言程序设计习题集.doc

    【精品文档】如有侵权,请联系网站删除,仅供学习与交流汇编语言程序设计习题集.精品文档.第四章 汇编语言程序设计习题集一、单项选择题1. 用高级语言编写的程序( )。A. 只能在基本种计算机上运行 B. 无需经过编译或解释,即可被计算机直接执行C. 具有通用性和可移植性 D. 几乎不占用内存空间2. 一般地,我们将计算机指令的集合称为( )。A 机器语言 B. 汇编语言 C. 模拟语言 D. 仿真语言3. 我们通常所说的“裸机”指的是( )。A. 只装备有操作系统的计算机 B. 不带输入输出设备的计算机C. 未装备任何软件的计算机 D. 计算机主机暴露在外4. 计算机的软件系统一般分为( )两大部分。A. 系统软件和应用软件 B. 操作系统和计算机语言 C. 程序和数据 D. DOS和Windows5 计算机系统软件中的汇编程序是一种( )。A. 汇编语言程序        B. 编辑程序    C. 翻译程序            D. 将高级语言转换成汇编程序的程序6. 假设V1和V2是用DW定义的变量,下列指令中正确的是:( ) A. MOV V1,20H B. MOV V1,V2 C. MOV AL,V1 D. MOV 2000H,V27. PC机所使用的标准键盘向主机发送的代码是( ) A . ASCII码 B . 扫描码 C. BCD码 D. 格雷码8. 8086CPU中断号为8的中断矢量存放在( )。 A. 0FFFFH:0008H B. 0000H:0008H C. 0000H:0020H D. 0020H:0000H9. 已知变量VAR为字型,则TYPE VAR=( )。 A. 1 B. 2 C. 3 D. 410 汇编语言源程序经MASM汇编后可直接生成的文件是( )。A. .LST       B. .CRF      C. .EXE      D. .OBJ     E. .ASM      F. .MAP11. 段定义语句以( B )语句结束。 A.END B.ENDS C.ENDP D.ENDM12 若主程序段中数据段名为DATA,对数据段的初始化操作应为( )。A. MOV AX,DATA                 B. MOV AX,DATA         MOV ES,AX                      MOV DS,AXC. PUSH DS                      D. MOV DS,DATA13 .EXE文件产生在( )之后。     A. 汇编        B. 编辑        C. 用软件转换         D. 连接14 定义双字变量的定义符是( )。A. DW           B. DQ            C. DD            D. DT15 假设VAR为变量,指令MOV BX,OFFSET VAR的寻址方式是( )。 A直接寻址 B间接寻址 C立即寻址 D存储器寻址16 执行下列指令:STR1  DW  ABSTR2  DB 16 DUP(?)CONT  EQU $-STR1MOV  CX,CONTMOV  AX,STR1HLT后寄存器CL的值是( )。A. 12H       B. 0EH        C. 0FH        D. 10H17. 与MOV BX,OFFSET VAR指令完全等效的指令是( )。      A. MOV BX,VAR      B. LDS BX,VAR      C. LES BX,VAR      D. LEA BX,VAR    18. 在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是( )。      A. WORD      B. PAGE      C. BYTE      D. PARA    19. BUF DW 10H DUP(3 DUP(2,10H),3,5)    上述语句汇编后,为变量BUF分配的存储单元字节数是( )。      A. 80H     B. 100H     C. 124     D. 192    20. 在汇编语言程序的开发过程中使用宏功能的顺序是( )。      A. 宏定义,宏调用       B. 宏定义,宏展开      C. 宏定义,宏调用,宏展开      D. 宏定义,宏展开,宏调用    21. 汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( )。      A. 名字项       B. 操作项    C. 操作数项     D. 注释项    22. 编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( )。    A. CMP    B. SUB    C. AND    D. MOV    23. 为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是( )。      A. INC CX JZ MINUS      B. SUB CX,OFFFFH JZ MINUS      C. AND CX,OFFFFH JZ MINUS    D. XOR CX,OFFFFH JZ MINUS    24. 假设V1和V2是用DW定义的变量,下列指令中正确的是( ). A. MOV V1,20H B. MOV V1,V2 C. MOV AL,V1 D. MOV 2000H,V2二. 多项选择题(每题有多个正确答案,选出所有正确答案,多选. 少选均不得分)1 变量定义的伪指令助记符有:( )。A. DB     B. DW     C. DD      D. DF      E. DQ      F. DT2 主程序与子程序之间传递参数可通过( )进行。A. 堆栈    B. 存储器单元      C. 通用寄存器      D. 指令队列    E. 其他3. 交换寄存器SI. DI的内容,正确的程序段是( )。A. PUSH SI B. PUSH SI PUSH DI PUSH DI POP SI POP DI POP DI POP SIC. MOV AX,SI D. MOV AX,SI MOV SI,AX MOV BX,DI MOV DI,AX XCHG BX,AX4. 过程(子程序)调用的形式有( )。 A. 段内直接 B. 段内间接 C. 段间直接 D. 段间间接三 填空题1. 23.当要求段的首地址只能被16整除时,需选择的定位方式为_ _ 。2 程序段   VAR1  DB?VAR2  DW 20 DUP(58H,2 DUP(?)VAR3  DBABCDMOV  AX,TYPE  VAR1MOV  BX,TYPE  VAR2MOV  CX,LENGTH VAR2MOV  DX,SIZE VAR2MOV  SI,LENGTH VAR3AX=,BX=,CX=,DX= ,SI=。3 段定义伪指令语句用语句表示开始,以  语句表示结束。4 ARRAY  DW 10 DUP(5 DUP(4 DUP(20H,40H,60H)语句执行后共占字节存储单元。5 汇编语句中,一个过程有NEAR和FAR两种属性。NEAR属性表示主程序和子程序    ,FAR属性表示主程序和子程序  。6 DOS系统功能号应放在 ah  寄存器中。7 子程序又称 过程 ,它可以由  语句定义,由  ret 语句结束,属性可以是  或 。8 与指令MOV  BX,OFFSET BUF功能相同的指令是     。9 设有伪指令 A DB 01H,23H ,则执行指令 B DW 2 DUP(0)MOV AL,TYPE A后,(AL)= ;MOV BL,SIZE B后,(BL)= 。10. 根据下面的指令和伪指令序列,AX寄存器的内容 。 TAB DB1,2,3,4,5,6ENTRYEQU3 MOVBX,OFFSETTAB ADDBX,ENTRY MOV AX,WORD PTR BX11 将下列文件类型填入空格:(1) .obj (2) .exe (3) .crf (4) .asm (5) .lst (6) .map 编辑程序输出的文件有; 连接程序输出的文件有。12. 数据段中有以下定义:ARRAY1 EQU 16HARRAY2 DW 16H请指出下面两条指令的寻址方式:MOV AX,ARRAY1;寻址方式: MOV AX,ARRAY2;寻址地址: 四、 判断(正确的在括号画“”,错误的画“×”)1 汇编语言程序语言必须由四部分组成。                            (   )2 汇编语言源程序中所使用的变量,必须在代码段中先定义,后引用 。(   )3 在汇编语言中,一般伪指令语句放在代码段中                     (   )4 逻辑操作符AND、OR、XOR或NOT,只能用于数字表达式。        (   )5 符号定义语句不占内存单元,变量定义语句占内存单元。           (   )6 汇编语言源程序中至少有一个代码段。                            (   )7. 伪指令是指示性语句,不产生机器目标代码。 (   )8. 伪指令BVAR:DBABCD,200 DUP(?)是合法伪指令。 (   )9. 伪指令DAT1 DB 7,8,9,10 与DAT1 DW 07H,08H,09H,0AH所预置的数据是一样的。 (   )10. 8086CPU的中断向量表共占有1024个字节(00000H003FFH),所以共有256个中断。 (   )五. 程序分析题1. 执行下面的程序段后,CX的内容是(   ) DAT1 DB 12H,34H,56H N=$-DAT1 MOV CX,N 2. 执行下面的程序段后,AX的内容是(   ), BX的内容是(   ). M1 DB 12H, 34H MOV SI,OFFSET M1 MOV AX,0 MOV AL,SI MOV BX,WORD PTR SI 3   源程序如下:STR   DB  ABCDEF0123456789MOV   BX ,OFFSET  STR MOV   AL ,65H PUSH AXAND   AL ,0FH XLATMOV DL,ALPOP AXADD AL,08HDAAMOV DH,ALCMP DH,32H执行上面程序段后,(DL)=( ),(DH)=( )。4 源程序如下:MOV AX, SEG TABLE ;TABLE为表头MOV ES, AXMOV DI, OFFSET TABLEMOV AL, 0MOV CX, 100CLDREPNE SCASB问: 1) 该段程序完成什么功能?(   ) 2) 该段程序执行完毕之后,ZF和CX有几种可能的数值?各代表什么含义?5 源程序如下:DATA SEGMENT    S9 DB 0,1,2,3,4,5,6,7,8,9    DATA ENDS    LEA SI,S9    LEA,DI,S9+1    MOV CX,5    LOP: MOV AL,SI    XCHG AL,DI    MOV SI,AL    ADD SI,2    ADD DI,2    LOOP LOP    上述程序段运行后,S9开始的10个字节存储单元内容是什么?  (   ) 6 源程序如下:MOV AL,38H    MOV BL,49H    CALL SUBO    INC AL    DEC CL    SUBO PROC    ADD AL,BL    MOV CL,AL    DAA    RET    SUBO ENDP    上述程序段运行后,AL=(   ),CL=(   )  7 源程序如下:DA3 EQU WORD PTR DA4    DA4 DB 0ABH,89H    SHR DA3,1    MOV DX,DA3    SHL DA4,1    MOV CX,DA3    上述程序段运行后,CX=(   ),DX=(   ) 8 下面程序是将10个8位无符号数按递减次序排序,请将程序填写完整。DATA SEGMENTARRAY DB 05H,78H,FFH,7BH,00H DB 8CH,20H,A0H,F0H,60HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PROC FARSTART:PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXAB1: MOV SI,OFFSET ARRAY MOV BL,0 MOV CX,10 AGAIN:MOV AL,SI INC SI CMP AL,SI (   ) CD1 MOV AH,SI MOV SI,AL DEC SI MOV SI,AH INC SI MOV BX,1CD1:LOOP AGAIN DEC BL (   ) AB1 RETMAIN ENDPCODE ENDS END START9 下面的程序段是统计AX中16位二进制数1的个数,并将结果放在CX中,填空使程序完成预定的功能。 XOR CX,CXL1: AND AX,AX JZ STOP SHL AX,1 INC CXL2: JMP L1STOP:HLT10 下面的程序段是求8个无符号数累加和, 最后结果用双字表示,存在YAH和YAL单元,填空使程序完成预定的功能。 DATA SEGMENT TABLE DW 34,789,67,78,345,89,78,60 YAH DW 0 YAL DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,0 XOR AX, AX ;清AX MOV BX, OFFSET TABLE MOV CX, 8 CLC LP: ADD AX, BX DON: INC BX INC BX LOOP LP MOV YAL,AX ;存和 MOV YAH,DX MOV AH,4CH INT 21H CODE ENDS END START11. 两个非组合BCD数(BY0,BY1)进行十进制减法,并将差求绝对值后保存在SD单元。 MOV AL,BY0 CMP AL,BY1 JNC L1 MOV AH,BY1 MOV BY1,AL MOV AL,AH L1: SUB AL,BY1 MOV SD,AL12 附加段有一块长50个字的数据区,首址为DEST,现将数据区初始化为0FFFFH。 LEA DI,DEST MOVCX,50*2 CLD MOV AL,0FFH 13 下面是某数据段定义,在表中标出各字节单元的值,并回答问题。 DATA SEGMENT PA DB 1 PB DW 5 PP EQU 2 PC DB PP DUP(0) DATA ENDS偏移值+0 +1 +2 +3 +4 TYPE PA=( ) TYPE PB=( )SIZE PA=( ) SIZE PB=( )SIZE PC=( )14. 源程序如下: MOV CL,4 MOV AX,2000H SHL AL,CL SHR AX,CL MOV 2000H,AX试问:j若程序执行前,数据段内(2000H)=09H,(2001H)=03H, 则执行后有(2000H)=_ _,(2001H)=_ _。 k本程序段的功能_。15. 阅读程序,并完成以下要求(10分)MOV CL,04H MOV DX,1234H MOV AX,5678H SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL A) (DX)= ,(AX)= B)由上面的结果可以看出该程序的功能是: 16. 源程序如下:(6分) MOV CX,9 MOV AL,01H MOV SI,1000HNEXT: MOV SI,AL INC SI SHL AL,1 LOOP NEXT试问:j执行本程序后有:AL=_;SI=_;CX=_;k本程序的功能是_。17. 设某数据段:    DATA SEGMENT    ORG 20H    NUM1=8    NUM2=NUM1+10H    DA1 DB 'COMPUTER'    DB 0AH,0DH    COUNT EQU $-DA1    DA2 DW'CO','MP','UT','ER'    DATA ENDS    试回答:(1)DA1的偏移地址是:_    (2)COUNT的值是_    (3)DA2+5字节单元的内容是_   18. 从BUF开始的11个单元中存放着11个整数,找出这11个数中正数并且是偶数的个数存入R中。DATA SEGMENTBUF DB 2,5,-3,6,100,0,-20,-9,8,-110,21N= R DW ?DATA ENDSCODE SEGMENT BEGIN:MOV AX,DATALEA BX,BUFMOV CX,NLOPA:CMP BX,BYTE PTR 0TEST BX,BYTE PTR 1INC AXNEXT:INC BXDEC CXMOV R,AXMOV AH,4CHINT 21HCODE ENDSEND 19. 对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么?DTSEGSEGMENT |DTSEGSEGMENTORG10H |ORG10HDATA1DB72H |DATA1DW7204HDB04H |DTSEGENDSDTSEGENDS |20. 内存单元初始化内容为:(2000H:2A00H)-(2000H:2A02H)分别为0FH、0EH、0DH,(2000H:2A10H)-(2000H:2A12H)分别为09H、08、07H。执行下列程序后,请填写存储单元的内容:MOV AX,2000HMOV DS,AXMOV ES,AXMOV SI,2A10HMOV DI,2A00HCLDMOV CX,3L:MOV AL,DI MOVSB DEC SI MOV SI,AL INC SI LOOP L HLT(1)2000H:2A00H= 。(2)2000H:2A11H= 。(3)2000H:2A12H= 。六. 简答题1. 有变量定义的伪指令如下:NUMS DW 18 DUP(4 DUP(5),23)VAR DB 'HOW ARE YOU !', 0DH, 0AH试问:NUMS、VAR变量各分配了多少存储字节?1、在指令系统中,段内、段间返回均为RET指令。试回答:      (1)执行段内返回RET指令时,执行的操作是?    (2)执行段间返回RET指令时,执行的操作是?    3. ARY DW 10 DUP(?)    MOV AL,TYPE ARY   .;MOV BL,LENGTH ARY    ;MOV CL,SIZE ARY    ;上述MOV指令序列执行后的结果是什么?    4   已知某数据段定义如下: DSEGSEGMENT ORG00HDAT1DW  4 ,26 ORG06HDAT2DW  5678HDBABDSEGENDS 要求:用内存分配示意图,说明该数据段的存储器分配情况。5 读程序,并回答问题DATA SEGMENTTABLE DB 0,1,4,9,16,25,36,49,64,81,100 XAD DB 3YAD DB ?DATA ENDSSTACK SEGMENT STACK 'STACK'STA DB 16 DUP ('STACK')STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROC FARSTART: PUSH DSMOVAX,0PUSH AXMOV AX, DATAMOV DS, AXMOV BX, OFFSET TABLEMOV AH, 0MOV AL, XADADDBX, AXMOV AL, BXMOV YAD,ALADD AL, 30HMOV DL, ALMOV AH, 02HINT 21HRETMAIN ENDPCODE ENDSEND START(1). 在存储器中分别为table、xad、yad、sta分配多少字节单元? (2). 程序运行后,xad、yad,单元中的值为多少?屏幕上显示的字符是什么?6. 下面的程序是将表中元素按值的大小升序排序。要求填空(1)和(2)使程序按预定目标运行; (3).程序运行后,显示结果为什么? CODESEGMENTASSUME CS:CODESTAR:JMP SSTTASCII DB 'GFBACXYD6291','$'COUNT = $-ASCII-2SSTT:MOVAX,CSMOVDS,AXMOVDL,COUNTMOVDH,1 ;设交换标志=1XORBX,BXL0:ORDH,DH JZL3MOVDH,0MOVCX,COUNTSUBCX,BXMOVSI,OFFSET ASCIIL1:MOVAL,SIINCSICMPAL,SIJBEL2 ;小于等于转 XCHGAL,SI(1) MOV DI-1,ALMOVDH,1L2:LOOP (2) L1INCBXDECDLJNZL0L3:MOVDX,OFFSET ASCIIMOVAH,9INT21HMOVAH,4CHINT21H ;返回DOSCODEENDPENDSTAR 7. 阅读下面的程序,回答问题.MODEL SMALL.386.STACK.DATA STRING DB 'Assemble Language is powerful' N=$-STRING NEWSTR DB N DUP(0).CODE .STARTUP MOV CX,N LEA SI,STRING LEA DI,NEWSTR.REPEATMOV AL,SI.IF (AL >= 'a') && (AL <= 'z') SUB AL,32.ENDIFMOV DI,ALINC SIINC DI .UNTILCXZ .EXITEND【问题】写出程序功能,程序执行后,从NEWSTR开始的N个字节中的内容是什么?七 编程题1. 将AL中的数,高4位保持不变,低4位置零。2. 从1000H单元开始,连续存放100个字符串,要查出第一个$符号, 编程序将第一个$字符地址送BX中。3. 从地址2100H单元开始,连续存放8个字节的无符号数,现在用BX作地址指针,编程序求和,并将结果存在210AH单元中。 4. 将连续存放在2000H单元开始的两个16位无符号数相乘,结果存放在两个数之后。5.检查AX中的第2位(bite2), 为零时, 把DH置0; 为1时, 把DH置1。 6. 假设某班80个学生某门课的成绩存放在数据区BUF开始的字节单元中,请编程统计小于60分的人数,60 80分的人数,大于80分的人数,并将统计结果分别存于S1、S2、 S3字节单元中。 要求写出注释。 7. 从2000H单元开始的区域,存放100个字节的字符串,其中有几个#符号(#的ASCII 码为23H),将第一个#符号替换成0,并将地址送DX,试写出程序段。8. DAT为首地址的两个存储单元存放了两个无符号字节数,求它们的差的绝对值存入ABS单元中,把ABS单元的值以十进制形式显示出来,然后返回DOS系统。要求显示程序用中断类型号为60H的中断服务子程序来完成。9. (13分)在存储单元中,以DAT为首地址存放了10个无符号数(范围为0255),对这10个数进行以下处理:去掉一个最大值和一个最小值后,求余下8个数的平均值并存入AVG单元中。请编写一个完整的汇编语言源程序实现。10. 自BUFFER开始的缓冲区有6个字节型的无符号数:10,0,20,15,38,236,试编制8086汇编语言程序,要求找出它们的最大值、最小值及平均值,分别送到MAX、MIN和AVI三个字节型的内

    注意事项

    本文(汇编语言程序设计习题集.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开