版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言程序设计 实验报告实验名 循环、分支、子程序设计 实验室 实验楼 实验日期 20140609 一、实验目的及要求 1. 熟悉命令格式,功能,加强对指令系统的理解 2编写简单循环、选择、子程序的结构程序 3单步跟踪调试,观察寄存器的变化和指令执行的结果 二、实验环境硬件环境:一台微型计算机软件环境:windows xp,debug环境,masm三、实验内容(至少写3个程序)题目一: 编写程序,求三个数据中的最大值,并将最大值存入MAX字单元中。1.设计:将x存入ax中,先与y比较,当x大时,x仍存于ax中,再与z比较,如果x大,则将x存入max中;否则将z存入max中。当y大时,将y存入
2、ax中,覆盖较小的x后,与z比较,得出最大数存于max中。2.源程序清单data segmentx dw 1ahy dw 0ahz dw 01hmax dw ? data ends ;数据段定义 code segment assume ds: data, cs: code start: mov ax, data mov ds, ax ;初始化数据段 mov ax, x cmp ax, y jg l1 ;判断x是否大于y,如果x大,则程序跳转到l1;否则顺序执行 mov ax, y jg exit l2: mov ax, z jmp exitl1: cmp ax, z ;判断x是否大于z,若z大
3、时,则跳转至l2;否则顺序执行exit 段程序 jle l2exit: mov max, ax mov ah,4ch int 21h;将最大值存于max中codeendsend start3.调试过程:(1).用masm程序产生mwn4.obj文件,没有错误,如下图:(2).用link程序产生mwn4.exe文件,如下图:(3).用u命令反汇编,查看代码段,数据段所在的内存单元;(4). 查看数据段初始数据:(5). 初始化数据段(6). x和y比较得:x大于y,将x存入AX中;(7).x和z比较:x大于z,仍存于AX中;(8). 输出运行结果:在数据段进行查看,max预先申请的内存单元000
4、4 中,存放着x的值。题目二: 设有十个学生的成绩分别是 76,69,84,90,73,88,99,63,100和80分。编制一个子程序统计6069分,7079分,8089分,9099分,和100分的人数,并分别存放到S6,S7,S8,S9,S10单元中。1. 设计: 分别为十个成绩、成绩总个数、分段的5个区间申请内存单元,初始化数据段;将AX,BX,CX压栈,保留原始数据。选取第一个成绩,存入AX中,该数据除以10,得到商存入BX,判断商的所属区间,给所属区间加1,继续下一个,循环直到十个全部判断结束,pop出栈,得到属于各区间的成绩个数,程序结束。2. 源程序清单dseg segment
5、;数据段定义num dw 76,69,84,90,73,88,99,63,100,80 ;十个成绩分别存入num为首地址的10个内存单元n dw 10 s6 dw 0 s7 dw 0 s8 dw 0 s9 dw 0 s10 dw 0 ;n=10,n是数据总数,S6S10分别存储不同成绩段的个数dseg ends code segment ;代码段定义main proc far assume cs:code, ds:dseg start: push ds sub ax, ax push ax mov ax, dseg mov ds, ax ;初始化数据段call sub1 ret main en
6、dp sub1 proc near ;sub1子程序push ax push bx push cx push si ;分别将AX,BX,CX,SI压栈,保留数据mov si, 0 mov cx, n ;CX赋值为10,数据总数next: mov ax, numsi ;选中第一个数据,存入AX中mov bx, 10 div bl mov bl, al ;该数据除以10后将商存入BLcbw sub bx, 6 ;减去6,判断是否为有效的数据范围sal bx, 1 inc s6bx add si,2 loop next ;得到第一个数为S6区间,S6加1,继续下一个内存单元的数据, 直到十个数据都判
7、断结束pop si pop cx pop bx pop ax ret ;将保留的数据出栈sub1 endp ;子程序结束 code ends end start ;程序结束3.调试过程:(1).用masm程序产生mwn5.obj文件,没有错误,如下图:(2).用link程序产生mwn5.exe文件,如下图:(3).用u命令反汇编,查看代码段,数据段所在的内存单元;(4) . 查看数据段,初始存入的十个成绩00000011段,0012存的数据总数10,而S6S10这五个内存单元全是0,为申请占用的空间。(5) . 初始数据段(6) .分别将AX,BX,CX,SI压栈,保留初始数据,(7).先选中
8、第一个成绩,将BX赋值10,除以该成绩,将商存于BL;(8). 用商减去6得到的差,存于BX并逻辑左移一位;(9)将BX置1后,加1继续循环,知道BX为10,循环结束;(10) 循环结束,在数据段查看结果,如下图,0013=2,0014=2,0015=3,0016=2,0017=1,分别对应不同成绩段的个数。题目三: 编写一个程序:从键盘输入一行字符,要求低一个键入的字符必须是空格,如不是,则退出程序;如是,则开始接受键入的字符并顺序存放在首地址为BUFFER的缓冲区中(空格符不存入),直接接收到第二个空格符时退出程序。1. 设计: 先预申请足够的以buffer为首地址的内存单元,设置一个标志
9、变量来判断输入的字符个数。先输入一个字符,判断是否为空格键,如果是,则程序继续进行,并将之后输入的非空格的字符串存入申请的内存单元,直到再一次输入的为空格为止;如果不是,则结束程序。2. 源程序清单datarea segment ;定义数据段 buffer db 80 dup(?) ;预申请了以buffer为首地址的内存单元 flag db ?datarea endsprognam segment ;定义编码段main proc far assume cs:prognam,ds:datareastart: push ds ;保存原始数据 sub ax,ax ;把0拖入ax中 push ax ;
10、存到堆栈中 mov ax,datarea ;datarea段地址 mov ds,ax ;存入DS寄存器中 lea bx,buffer ;将buffer首地址存入BX mov flag,0 ;flag清零next: mov ah,01h int 21h ;输入字符 test flag,01h jnz follow ;不为0时,跳转;否则顺序执行 cmp al,20h jnz exit ;和空格键比较,判断是否输入的字符是空格键,如果不是, 则跳转,否则顺序执行 mov flag,1 jmp next ;跳转到next段程序执行follow: cmp al,20h jz exit ;如果为0,则跳转到exit,否则顺序执行 mov bx,al ;将AL的值存入BX所指的内存单元 inc bx jmp next ;继续判断下一个输入的字符exit: ret ;返回dosmain endpprognam ends end start ;程序结束3.调试过程:(1).用masm程序产生mwn6.obj文件,没有错误,如下图:(2) .用link程序产生mwn6.exe文件,如下图:(3) .用u命令反汇编,查看代码段,数据段所在的内存单元;(4) . 查看数据段,初始全零;(5).初始化数据段,并保留AX、BX、CX的值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年广东省人教版小学五年级科学上册第1单元实验操作测试卷
- 2025-2026年医学考研生理学重点习题集
- 调节器校验记录
- 北京市北京第四中学2027届物理高一第一学期期中复习检测试题含解析
- 2026年新时代青年传承长征精神的现实意义与实践路径
- 2027届山西省朔州市第二中学高三上物理期中教学质量检测试题含解析
- 测量观察设备维护保养管理办法
- 2026年湖北考研(数学)考试试卷(真题)(含答案)
- 2026年山东省东营中小学教师招聘考试试题解析及答案
- 2026保密知识-多项选择题历年真题试卷
- DL∕T 1362-2014 输变电工程项目质量管理规程
- DZ∕T 0301-2017 海洋地质图图例图式及用色标准(正式版)
- 咯血介入治疗护理查房
- 《血管活性药物静脉输注护理》标准解读
- 统编小学语文六年级上册第三单元解读
- 集合的基本运算(课件)
- 2023年上海市秋季班高二语文讲义(秋上教师版)
- 浙教版七年级数学下册全册课件
- 高中英语 译林版 必修三 Unit 3 The world online Unit3第2课时Reading
- 把政治监督摆在突出位置不断推进政治监督“三化”PPT大力推进政治监督三化PPT课件(带内容)
- GB/T 2693-2001电子设备用固定电容器第1部分:总规范
评论
0/150
提交评论