汇编语言程序大作业(含源代码).pdf
《汇编语言程序大作业(含源代码).pdf》由会员分享,可在线阅读,更多相关《汇编语言程序大作业(含源代码).pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序大作业程序简介本程序的功能简单,是可以根据用户从键盘的不同输入,回显在显示器上不同的结果。其实现的功能是当用户从键盘输入01 至 12 之间的数时(一年12 个月),程序能给用户返回其相应的月份的英文缩写符;程序的运行过程介绍1)当从编程环境按下运行按钮之后,屏幕上会显示如下一个窗口:图(1)提示使用者输入01 至 12 之间的任一个两位数字,这里可以随意输入01至 12 之间的一个两位数字;2)这里从键盘输入如下图所示的数字接着按下回车键,则会显示用户所输入的数字的相应的月份的英文缩写,如下图所示:程序功能分析:本程序功能简单,仅有输入输出功能,即从键盘上输入一些数字并回车之后给
2、使用者提示相应的信息,下面介绍程序中相应功能是如何实现的:第一,根据常规本程序没有涉及到子程序的概念,仅仅有照常的数据段和代码段而且同时把数据段定义为附加段;第二,在代码段里共有四个部分分别为主程序代码部分键盘输入部分 设置部分和输出部分;下面分别介绍代码段里的各个部分代码段里的主程序部分:main proc far push ds;为返回而把 ds保存到堆栈段sub ax,ax ;清空ax寄存器的内容push ax;把0(清空后的 ax的内容)推入堆栈段mov ax,DATASG ;mov ds,ax;把ax作为中间变量给数据段寄存器送入内存中数据段的首地址mov es,ax;同时把该首地址
3、送给附加段 call input;调用子程序 input(输入子程序)call locate;调用子程序 locate(设置子程序)call display;调用子程序 display(输入子程序)ret;返回main endp ;main 主程序结束代码段里的键盘输入部分:input proc near push dx;为保护 dx而把其内容推入堆栈段lea dx,DSPLY1 ;为了让使用者知道程序一开始要输入什么,这里将把内存中数据段里的 DSPLY1 变量的首地址送给 dx寄存器(专业的说法就是把 DSPLY1的偏移地址送给了 dx数据寄存器)mov ah,09h ;为了能显示 DSP
4、LY1 变量里的字符串,故把 09送给ah并之后中断一次int 21h;DOS 中断mov ah,0ah ;换行lea dx,MONIN;把MONIN 的偏移地址送给寄存器 dx int 21h;DOS 中断mov ah,MONIN+2;把MONIN 作为首地址后再加 2以后的存储单元内容送 ah mov al,MONIN+3;把MONIN 作为首地址后再加 3以后的存储单元内容送 alxor ax,3030h ;清空ax的相应位置cmp ah,00;ah 和00进行比较(主要确定键盘所输入的数字是否在01-09之间)jz return ;若ah的内容确实为 0则跳到 return 标签处su
5、b ah,ah;若ah的内容不为零则清空 ah add al,10;之后al 的内容相加 10存入al return:pop dx ;重新从堆栈段弹出 dx ret;返回input endp 设置部分locate proc near push si;保存si 寄存器的内容(推入堆栈段)push di;保存di 寄存器的内容(推入堆栈段)push cx;保存cx寄存器的内容(推入堆栈段)lea si,MONTAB ;把MONTAB的偏移地址送给 si 寄存器dec al;al 的内容减一(为建立一个表)mul THREE;ax 和数据段中的 THREE 变量进行相乘add si,ax;之后si
6、和ax的内容进行相加mov cx,03 ;把03送入cx寄存器cld;为循环的方向做确定(定义方向为从左到右进行扫描)lea di,ALFMON ;把数据段中变量 ALFMON的偏移地址送给 di 寄存器rep movsb;进行以字节为单位的扫描pop cx;从堆栈段弹出 cx pop di;从堆栈段弹出 di pop si;从堆栈段弹出 si ret;返回locate endp 输出部分display proc near push dx ;为保护 dx的内容而把 dx lea dx,DSPLY2 ;为了解释最后显示的结果,故把建立在数据段里的DSPLY2 变量的首地址送给了 dx寄存器,也就
7、是把 DSPLY2 的偏移地址送给了 dx寄存器mov ah,09h ;为了能够显示字符串故把 09h送给了 ah,并之后中断了一次int 21h;DOS 中断lea dx,ALFMON ;把ALFMON的偏移地址送给 dx寄存器mov ah,09 ;为了屏幕上显示字符串int 21h pop dx;从寄存器弹出 dx ret display endp 下面介绍 数据段的定义:DATASG SEGMENT PARA DATA THREE DB 3 MONIN DB 3,4 DUP(?)ALFMON DB?,$MONTAB DBJAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序 作业 源代码
限制150内