- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验十一综合程序设计
实验十一 综合程序设计
一、实验目的:
巩固循环,分支,子程序等程序设计方法。全面了解汇编语言的程序设计和调试方法调试并查看.lst列表文件。
二、实验内容:
编写一个程序,接收从键盘输入的10个数字字符,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为:
输入数字:0,1,2,3,4,5,6,7,8,9
密码数字:7,5,9,1,3,6,8,0,2,4
三.实验设备:IBM PC机,DOS或WINDOWS, MASM5。0程序,LINK程序
四.实验原理:
采用子程序结构完成数字的输入,并将其转换为二进制数,采用查表实现加密过程。程序主要部分如下:
模块层次图
1、过程名:main 为总控模块
输入:用户从键盘输入10个十进制数字
输出参数:将数字加密后保存到内存缓冲区BUFFER。
功能:根据输入的数字和加密表完成数据加密。采用(XLAT指令变换)
2、过程名:input
输入: 从键盘输入10个数字字符,以回车符结束。
输出参数:把输入的数字字符转换成数值后存入indata数组中。
功能:接受输入的十进制数字字符。
调用子模块decibin把输入的数字字符转换为二进制数值。
调用子模块crlf 完成回车换行功能。
3、过程名:output
输入参数:从indata数组中取得数值。
输出参数:把数值加密后存到缓冲区BUFFER中
功能:读取数字,完成加密转换,将结果保存到BUFFER中。
4、过程名:decibin
输入:从键盘取得一个数字字符。
输出参数: SZBJ,表示用户输入的字符是否为数字;
AL 把该数字字符转换为二进制数值放到AL
DL,用户输入的字符ASCII码
功能:把从键盘取得的一个十进制数转换为二进制数,并存于al中。
5、过程名:crlf
输出:向终端发出回车、换行符。
功能:完成一次回车、换行操作。
6、过程名:outmess
输入参数:将字符串首地址放到DX中
输出:完成字符串的屏幕显示。
功能:实现提示信息的输出。
五、实验过程
1.编辑程序代码
dataseg segment
indata db 10 dup(?)
array db 7,5,9,1,3,6,8,0,2,4
buffer db 10 dup(?)
messg1 db Input number:,$
messg2 db program over normally!,$
messg3 db Input character error,please input again!,$
SZBJ db ?
dataseg ends
stackseg segment
dw 100 dup (?)
tos label word
stackseg ends
codeseg segment
main proc far
assume cs:codeseg,ds:dataseg;,ss:stackseg
start:
push ds
sub ax,ax
push ax
mov ax,dataseg ;设置DS指向dataseg 段
mov ds,ax
mov ax,stackseg
mov ss,ax
mov sp,offset tos
call input ; 调用子过程input
call output ; 调用子过程output
mov ax,4c00h
int 21h
main endp
input proc near
lea dx,messg1 ;输出提示信息
; mov dx,offset messg1
call outmessg
lea si,indata ; 置输入数据地址初值
mov cx,0
enter:
文档评论(0)