华南农业大学汇编语言8086习题(附答案)2

上传人:tia****nde 文档编号:36858753 上传时间:2018-04-03 格式:DOC 页数:54 大小:238KB
返回 下载 相关 举报
华南农业大学汇编语言8086习题(附答案)2_第1页
第1页 / 共54页
华南农业大学汇编语言8086习题(附答案)2_第2页
第2页 / 共54页
华南农业大学汇编语言8086习题(附答案)2_第3页
第3页 / 共54页
华南农业大学汇编语言8086习题(附答案)2_第4页
第4页 / 共54页
华南农业大学汇编语言8086习题(附答案)2_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《华南农业大学汇编语言8086习题(附答案)2》由会员分享,可在线阅读,更多相关《华南农业大学汇编语言8086习题(附答案)2(54页珍藏版)》请在金锄头文库上搜索。

1、题目名称实验一 汇编语言程序结构题目关键字 源程序结构 debug题目录入时 间2013-3-13 22:45:26题目内容一一、实实验验目目的的 1掌握汇编语言程序上机过程。2掌握汇编语言结构。3了解汇编程序、连接程序、DOS 系统装入和返回功能。4掌握用DEBUG 调试汇编语言程序的方法 二二、实实验验要要求求 1. 编写完整的汇编语言程序: (1)逆序输出字符串 “BASED ADDRESSING” 。 (2)从键盘上输入 2个一位的正数,求出它们的和(假设和不超过1 位) 。 (3)试编写一段程序,要求在长度为100H 字节的数组中,找出大于 42H 的无符号数的个数并存入字单元UP

2、中;找出小于 42H 的无符号 数的个数并存入字单元DOWN 中。 2.在 DEBUG 下查看程序执行的过程,以及变量值的变化。 3.演示程序运行结果,请指导教师检查。 三三、思思考考 1.汇编语言程序中语句 END 后的标号作用是什么?2.采用标准序结构编制源程序,用ret 结束程序运行返回操作系统 时,可否将语句main proc far 中的 far 属性去掉,为什么?3.一个段的大小为多少?一定是64KB 吗?如何在DEBUG 下查看程序在内存的存放情况?四四、提提交交内内容容将各个源程序代码、exe 文件压缩为RAR 后提交到作业系统。题目创建人题目注释1.1.asm DATAS S

3、EGMENTString db “BASED ADDRESSING“count dw $-String DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AX mov cx,count ;循环次数lea si,count-1 ;将最后一个字符G的地址给 siL: mov ah,2mov dl,sidec siint 21hloop LMOV AH,4CHINT 21H CODES ENDSEND START1.2.asm DATA

4、S SEGMENTx db “x=$“y db “y=$“z db “x+y=$“ DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXmov ah,9 ;显示“x=“lea dx,xint 21hmov ah,1 ;输入 Xint 21hsub al,30hmov cl,al ;将 X 放在 CLmov ah,9 ;显示“y=“lea dx,yint 21hmov ah,1 ;输入 Yint 21hsub al,30hadd

5、cl,al ;两数字相加mov ah,9 ;显示“z=“lea dx,zint 21hmov ah,2 ;显示结果mov dl,cladd dl,30hint 21hMOV AH,4CHINT 21H CODES ENDSEND START1.3.asm DATAS SEGMENTarray db 128 dup(41h,43h) up dw 0down dw 0 DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXlea di

6、,arraymov cx,256 L:mov al,dicmp al,42hjl L1ja L2 L1:inc downjmp L3 L2:inc upjmp L3 L3:inc diloop LMOV AH,4CHINT 21H CODES ENDSEND START题目名称实验二 程序结构与简单程序设计题目关键字 简单程序设计题目录入时 间2013-4-1 22:45:55题目内容一一、实实验验目目的的1掌握汇编语言源程序结构。2掌握汇编语言调试方法。二二、实实验验要要求求 1.编写完整的汇编语言程序: (1) 试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 (2) 编写程序

7、,从键盘接收一个小写字母,然后找出它的前导字母和 后续字母,再按顺序显示这三个字符。(3) 试编写一段程序,要求比较两个字符串string1和 string2 所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”. (4) 编写程序,将一个包含有20个数据的数组M 分成 2个数组: 正数数组P 和负数数组N,并分别把这两个数组中数据的个数显示出来。2.在 DEBUG 下查看程序执行的过程,以及变量值的变化。 3.演示程序运行结果,请指导教师检查。三三、思思考考 对输入的非字母字符如何处理?2. 字母 “a”和 “z”边界字符的处理方法是什么?3. 显示结果为多位数

8、的时候如何输出?四四、提提交交内内容容 将各个源程序代码、exe 文件,思考题的WORD 文档压缩为RAR 后提 交到作业系统。题目创建人题目注释2.1.asm DATAS SEGMENTcrlf db 0ah,0dh,$ DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXmov ah,1 ;输入数据会 ALint 21hpush ax ;将 AX 存进栈里lea dx,crlf ;换行mov ah,9int 21hpop d

9、x ;栈里数据放进 DX,即将原先 AX 放进 DXsub dl,20h ;小写变大写要减去 20hmov ah,2 ;输出int 21hMOV AH,4CHINT 21H CODES ENDSEND START2.2.asm DATAS SEGMENTString db zabcdefghijklmnopqrstuvwxyza DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXlea di,Stringmov ah,1 ;输

10、入字母int 21h L:inc di ;先 DI 自加 1,第一次就是a的地址,不是zcmp al,di ;直到找到字母和输入的相匹配jnz Ldec di ;推前成为前端字母的地址mov cx,3 ;循环次数 3 L2: mov dl,diinc dimov ah,2int 21hloop L2MOV AH,4CHINT 21H CODES ENDSEND START2.3.asm DATAS SEGMENT String1 db “this is a program“ count1 dw $-String1 String2 db “this is a program“ count2 dw

11、 $-String2answer1 db match,$answer2 db no match,$ DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXmov ax,count1 mov bx,count2cmp ax,bx ;比较两个字符串的长度,如果不等就是不匹配jnz nextmov cx,count1 ;字符串长度lea si,string1 lea di,string2 L: mov al,sicmp al,di ;比

12、较两个字符串的字符,如果不等就跳jnz next inc siinc diloop Llea dx,answer1 ;能到这里说明都匹配mov ah,9int 21hjmp finally ;跳去 finally,避免顺序执行了 nextnext: ;显示不匹配lea dx,answer2mov ah,9int 21hfinally: MOV AH,4CHINT 21H CODES ENDSEND START2.4.asm DATAS SEGMENTM db 5 dup(-1,1,2,3)P dw 0N dw 0 DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES

13、 SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXlea si,Mmov cx,20 ;循环次数 L:mov al,sicmp al,0 ;和 0 比较判断正负jl L1jg L2 L1:inc Njmp L3 L2:inc Pjmp L3 L3:inc siloop L mov ax,P ;输出 Pmov bl,10 ;设置除数 10div bl mov bh,ah ;将 ah(余数放在 bh 保留)mov dl,al ;将商显示add dl,30hmov ah,2int 21hmov dl,bh ;将

14、余数显示add dl,30hmov ah,2int 21hmov ax,N ;输出 Nmov bl,10div blmov bh,ahmov dl,aladd dl,30hmov ah,2int 21hmov dl,bhadd dl,30hmov ah,2int 21hMOV AH,4CHINT 21H CODES ENDSEND START题目名称实验三 分支程序设计题目关键字 分支结构题目录入时 间2013-4-14 20:14:57题目内容一一、实实验验目目的的1. 掌握汇编语言源程序结构。 2. 掌握汇编语言分支结构程序设计方法。二二、实实验验要要求求 1.编写完整的汇编语言程序: (

15、1) 试编写一段程序,求出首地址为DATA 的 100D 字数组中的最小偶 数,并把它存放在AX 中。 (2) 编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显 示与它等值的二进制数。 (3) 键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字 符计数,并显示计数结果。 (4) 有一个首地址为mem 的 100个字的数组,试编制程序删除数组中所 有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。 2.在 DEBUG 下查看程序执行的过程,以及变量值的变化。 3.演示程序运行结果,请指导教师检查。三三、思思考考 1. 求极值时程序初始化应该注意什么? 2. 如何从键盘上输入多位数?3. 第 (4)小题有多少种做法?四四、提提交交内内容容 将各个源程序代码、exe 文件以及思考题压缩为RAR 后提交到作业系 统。提交时请填写自评内容。题目创建人题目注释3.1.asmDATAS SEGMENTDATA dw 1 dup(1,2,-1,4,-2,-6)count dw ($-DATA)/2 DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号