收藏 分销(赏)

【汇编语言程序设计】期末考试-试卷及参考答案.doc

上传人:快乐****生活 文档编号:4363045 上传时间:2024-09-13 格式:DOC 页数:8 大小:56.50KB
下载 相关 举报
【汇编语言程序设计】期末考试-试卷及参考答案.doc_第1页
第1页 / 共8页
【汇编语言程序设计】期末考试-试卷及参考答案.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述
课程编号: H61030005 课程名称: 汇编语言程序设计 考试形式: 闭卷              学院: 信息工程 专业:  计算机科学与技术    考试日期:        题号 一 二 三 四 五 六 七 八 九 十 总分 累分人 签名 题分 20 12 18 20 30 100 得分 考生注意事项:1、本试卷共7 页,请查瞧试卷中就是否有缺页或破损。如有立即举手报告以便更换。      2、考试结束后,考生不得将试卷、答题纸与草稿纸带出考场。 一、单项选择题(每小题 2 分,共 20分)  1。一个有128个字得数据区,它得起始地址为12ABH:00ABH,请给出这个数据区第一个字单元得物理地址就是(  A )。 A。12B5BH ;         B。12B6BH ; C.12C59H;         D.12BFEH。 2.在下列指令得中,不能实现把AX寄存器内容清零得指令就是( C )。 A. SUB AX,AX; B.XOR AX,AX; C.OR AX,0000H; D.AND  AX,0000H。 3。条件转移指令JNE得测试条件为 ( A  ). A。ZF=0 ;       B.CF=0 ; C.ZF=1 ;    D。CF=1 。 4。8086CPU在基址加变址得寻址方式中,变址寄存器可以为(D   )。 A。BX或CX ;    B.CX或SI ; C.DX或SI ;    D。SI或DI。 5.设(AX)=1000H, NEG  AX  NOT AX 【汇编语言程序设计】期末考试—试卷及参考答案 执行上述两条指令后,正确得结果就是( B   )。 A.(AX)=1001H;       B.(AX)=0FFFH; C。(AX)=1000H;      D.(AX)=0111H。 6。串指令中得目得操作数地址一定就是由____A_  _提供。( ) A。ES:[DI] ;      B。SS:[BP];  C.DS:[SI] ;     D.CS:[IP]。 7.将DX得内容除以2,正确得指令就是(  C   ). A.DIV  2 ; B.DIV   DX,2 ; C.SAR  DX,1; D。SHL  DX,1。 8、 用户为了解决自己得问题,用汇编语言所编写得程序,称为( B )。 A。目标程序;     B。汇编语言源程序;   C.可执行程序;         D。汇编程序。 9.用一条指令仅实现将AX←BX+SI得方法就是( D   ). A. XCHG AX,[BX][SI] ; B. MOV AX,[BX+SI]; C.LEA AX,BX[SI] ; D.LEA AX,[BX][SI]. 10.设SP初值为2000H,执行指令“PUSH  AX”后,SP得值就是( C )。 A.1FFFH;          B。1998H; C。1FFEH;      D.2002H。 1、A  2、 C 3、A 4、D 5、B 6、A 7、C  8、B 9、D 10、C 二、指出下列指令得出错原因,并改正。(每小题2分,共12分) 1. MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2. MOV CS,AX;代码段寄存器CS不能作目得操作数,改正为MOV DS,AX 3. ADD AX,DS;段寄存器DS得内容不能作为加法指令得操作数,改正为 MOV BX,DS ADD AX,BX 4. TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为 MOV  SI,CX TEST BX,[SI] 5. SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数得数据类型 不确定,改正为:MOV AX,[BX] SUB AX,[BP+SI] 或:MOV AL,[BX] SUB AL,[BP+SI] 6。SHL DX  ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令得作用!每空3分,共18分) 1. 在表TABLE处存放着N个无符号字节数,求表中前10个字节数得总与并保存在AX寄存器中。如果总与值超过AX寄存器得容量,则置AX寄存器内容不变。请在程序中得空格处填入适当指令使其完整。     LEA  BX,TABLE    MOV  CX,10  MOV  SUM,AX ;将AX得原值保存在SUM单元中      MOV AL,00H MEXT:(1)ADD AL,[BX] ; 实现将表TABLE中得数据按字节累加到AL中 ADC  AH,0     JNC  DONE (2)MOV AX,SUM ; 总与值超过AX寄存器得容量,恢复AX得原值  JC  EXIT DONE:INC BX    (3)LOOP NEXT  ; 将计数器CX减1,并判断就是否继续下一次循环 EXIT:HLT 2. BUFFER为起始地址得存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中得空格处填入适当得指令使其完整。     MOV  CX,32H ;循环50次     LEA  SI,BUFFER   MOV  DI,SI    (1) ADD DI,99   ;DI指向最后一个字节数据得存储单元得偏移地址   NEXT:MOV  AL,[SI]      (2) XCHG AL,[DI];交换SI与DI所指向单元得内容         MOV  [SI],AL    (3) INC SI   ;使指针SI加1,指向下一个字节得数据             DEC  DI     LOOP NEXT     HLT 四、程序分析题(每小题4分,共20分) 1. 设(AX)= X,X就是无符号数且0≤X〈 6000,分析下面程序段,回答问题;    SHL AX,1   ;实现X乘2    MOV BX,AX SHL AX,1 SHL AX,1   ADD AX,BX (1) 该程序段得功能就是什么? 实现无符号数X乘10,结果存放在AX寄存器中.   ——2分 (2) 该程序段执行完后,(AX)=  10X  ,(BX)= 2X 。-—2分 2. 现有一子程序段: SUB1   PROC  TEST AL,80H   JE PLUS   TEST BL,80H    JNE EXITO   JMP XCHANGE PLUS:  TEST BL,80H JE EXITO XCHANGE:XCHG AL,BL EXITO: RET SUB1  ENDP 试回答:(1)子程序得功能就是什么? 答:子程序得功能就是判别AL与BL中得数就是否为异号数,当为异号时交换,否则不变.      (2)若调用子程序前(AL)=9AH,(BL)=77H,则返回主程序时,(AL)=__77H____,(BL)=_9AH__。       请回答: (1) 该程序段占有得存储单元字节数就是多少?画出所分配得存储区得示意图、 答:8个字节, 0020H 12H DA1 00H 23H 00 0024H 11H DA2 21H 0025H 31H DA3 32H (2) 符号名DA4得值就是多少?符号名DA5得值就是多少? 答:DA4=2,DA5=1234H 3. 现有如下程序段: DATA  SEGMENT  ORG  0020H  DA1  DW 12H,23H  DA2  DB 11H,21H  DA3  DB 31H,32H  DA4  EQU  $-DA3 DA5  EQU  1234H DATA ENDS 4. 阅读如下程序: ADRR    DB  XXH,XXH,……,XXH;定义得字节数组元素   NUM  EQU $-ADRR  RET_VLAUE DW ? …  MOV CX,NUM MOV BX,—1 NEXT:    INC BX CMP ADRR[BX],0 LOOPNZ NEXT  JZ DONE MOV BX,OFFH DONE:   MOV RET_VLAUE,BX HLT 请问:(1)该程序完成得功能就是什么? 功能:在以ADRR为起始地址得数组中,查找第一个就是0得数据. (2)程序执行后指出RET_VLAUE单元中得内容就是什么?   若找到,则将第一个就是0得数据在数组中得偏移量送入RET_VLAUE单元中;若无0数据,则将0FFH送入RET_VLAUE单元中. 5. 阅读如下程序段,回答所提出得问题,假定X1,X2,…,XN为无符号数。     ORG 100H   BLOCK  DW X1,X2,…,XN   COUNT  EQU ($-BLOCK)/2 RESULT DW  COUNT,? LEA BX,BLOCK—2 MOV CX,RESULT XOR AX,AX GO_ON:ADD BX,2 CMP AX,[BX] JAE NEXT MOV AX,[BX] NEXT: LOOP GO_ON MOV RESULT+2,AX 程序段执行完,回答下述问题: RESULT+2字存储单元得内容= MAX(X1,X2,…,XN ) ; BX =  100H + 2×(COUNT-1)       ;       程序循环次数 = COUNT        。      五、编写程序(30分) 得分 评阅人 1。编写一程序,在letter为首地址得26个单元中依此存放字母‘A’、‘B’、……‘Z’。(本小题8分) data   SEGMENT   letter  DB 26 DUP(?)                 count EQU $-letter             data  ENDS    code  SEGMENT   ASSUME cs:code,da:data  start: mov ax,data      mov ds,ax     mov cx,count lea si,letter     mov al,‘A’ next:   mov [si],al         inc al   inc  si   loop next     mov ah,4ch   int 21h  code    ends     end start 2.以Buffer为首地址得存储区,存放有长度为N有符号字数组,编写一程序求出其中负数得平均值(所有负数得与>-32768),并存放在M_average单元中。(本小题10分) data SEGMENT Buffer DW XXXX,XXXX,……,XXXX;N个字 count   EQU ($-Buffer)/2 M_average dw ? data    ENDS  code  SEGMENT         ASSUME  cs:code,da:data cwd idiv bx mov M_average,ax ;存负数得平均值 mov ah,4ch int 21h data ends end start   start: mov ax,data        mov ds,ax    mov cx,count  lea si, Buffer          xor ax,ax ;存负数得与    mov bx,ax  ;存负数得个数 next: test word ptr [si],8000H      je go_on add  ax,[si] inc  bx   go_on: add  si,2    loop next 3.从键盘接收一串不多于99个字符得字符串,对其进行分类统计,显示其中数字字符个数、大写英文字母个数、小写英文字母个数、以及其她字符得个数。要求使用子程序结构;数字字符得ASCII码为30H……39H、大写英文字母得ASCII码为41H……5AH、小写英文字母得ASCII码为61H……7AH.(本小题12分) data SEGMENT  MSG    DB 0DH,0AH,‘输入一串字符:$’ MSG1   DB 0DH,0AH,‘大写字母个数:$’ MSG2 DB 0DH,0AH,‘小写字母个数:$' MSG3   DB 0DH,0AH,‘数字符号个数:$’ MSG4  DB 0DH,0AH,‘其它符号个数:$’ BUFFER DB  99   DB 0 DB  99 DUP(?) BIG   DB  0   ;大写字母个数 LITTLE DB 0 ;小写字母个数 DIG  DB 0 ;数字符号个数 OTHER DB  0 ;其它符号个数 data ENDS            code SEGMENT   ASSUME  cs:code,da:data start: mov ax,data     mov ds,ax lea dx,MSG mov ah,9 ;9号功能调用显示提示信息 int 21h lea dx,BUFFER mov ah,10 ;10号功能调用从键盘接收一串字符 int 21h  mov cl,BUFFER+1;实际从键盘接收字符个数 mov ch,0 lea si,BUFFER+2 again: cmp byte ptr [si],30H jb others cmp byte ptr [si],39H jbe digitals cmp byte ptr [si],41H jb  others cmp byte ptr [si],5AH jbe bigs cmp byte ptr [si],61H jb  others  cmp byte ptr [si],7AH jbe littles others: inc OTHER        jmp ok digitals:inc DIG   jmp ok littles: inc LITTLE       jmp ok bigs: inc BIG ok:  inc si loop again lea dx,MSG1 mov bh,BIG call dispdec lea dx, MSG2 mov bh,LITTLE call dispdec lea dx, MSG3 mov bh,DIG call dispdec lea dx, MSG4 mov bh, OTHER call dispdec       mov ah,4ch    int 21h ;DX待显示数据说明,BH待显示数据<100 dispdec PROC   mov ah,9 int 21h       mov al,bh     xor ah,ah     aam     mov dl,ah    mov dh,al       add dl,30H mov ah,2  int 21H   mov dl,dh add dl,30H     mov ah,2     int 21H ret dispdec ENDP code   ENDS       end start
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服