专业:班级:
学号:姓名:
1、实验目的。
1.增强和提高汇编语言程序设计的能力,掌握模块化程序设计的方法。
2.熟练掌握dos常用功能的调用方法。
2、实验仪器。
586微机一台。
3、实验内容。
编写如下程序,并在机器上调试成功。程序采用菜单式选择,可以接收用户从键盘输入的五个命令(1-5),各命令功能分别为:
(1)按下“1”键,完成字符串小写字母变成大写字母。
用户输入一由英文大小写字母或数字0-9组成的字符串(以回车结束),程序逐个检查字符串中各字符,将原串中小写字母变成大写字母,其他字符不变,并在屏幕上显示。用户按任一键,重做,按esc键,返回主菜单。
2)按下“2”键,完成找最大值(二选一)。
a.接收用户输入的可显示字符串(以回车结束),程序将其中ascii码值最大的字符显示出来;
b.接收用户输入若干个无符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大的数显示出来。用户按任一键,重做,按esc键,返回主菜单。
3)按下“3”键,完成排序(二选一)。
a.接收用户输入的可显示字符串,以回车结束。程序按ascii码值大小由大到小排序并输出显示;
b.接收用户输入若干个有符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大的数显示出来。用户按任一键,重做,按esc键,返回主菜单。
4)按下“4”键,显示时间。
首先提示用户对时,即用户输入时、分、秒(以空格或逗号为分隔符,以回车结束),然后,在屏幕上不断显示时间,格式为:
xx(时): xx(分): xx(秒)
最好定点显示。用户按任一键,重新对时,按esc键,返回主菜单。
5)按下“5”键,结束程序运行,返回系统提示符。
4、实验源程序。
stack segment stack
db256dup(?)
top labelword
stack ends
data segmenttable
dw g1,g2,g3,g4,g5
string0 db'formtheschoolidis02111460licheng',0dh,0ah,'$
string1 db'',0dh,0ah,'$
string2 db'',0dh,0ah,'$
string3 db'',0dh,0ah,'$
string4 db'',0dh,0ah,'$
string5 db'',0dh,0ah,'$
stringn db'inputthenumberyouselect(1-5):$
in_str db'inputthestring(includingletters&numbers,lessthan60letters):'0dh,0ah,'$
prestr db'originalstring:$'
newstr db'newstring:$'
out_str db'thestringis$'
maxchr db'themaximumis$'
in_num db'inputthenumbers(0-255,nomorethan20numbers):'0dh,0ah,'$
out_num db'sortednumbers:',0dh,0ah,'$
in_tim db'correctthetime(hh:mm:ss):$
hintstr db'pressesc,gobacktothemenu;orpressanykeytoplayagain!$'
keybuf db61
db?db61dup(?)
numbuf db?
db 20dup(?)
data ends
code segment
assumecs:code,ds:data,ss:stackstart:
mov ax, data
mov ds, ax
mov ax, stack
mov ss, ax
mov sp, offsettop
main: callfarptrmenu;设置显示器。
again: mov ah, 2
mov bh, 0;页号。
mov dl, 41;列号。
mov dh, 10 ;行号。
int 10h ;光标位置设置。
mov ah,1
int 21h
cmp al, '1'
jb again
cmp al, '5'
ja again
sub al,'1'
shl al,1n-1)*2
cbwleabx,table
addbx,ax
jmpwordptr[bx]
g1: callfarptrchgltr
movah,8
int21h
cmpal,1bh
jzmain
jmpg1g2: callfarptrmaxltr
movah,8
int21h
cmpal,1bh
jzmain
jmpg2g3:callfarptrsortnum
movah,8
int21h
cmpal,1bh
jzmain
jmpg3g4:call farptrtimchk
movah,8
int21h
cmpal,1bh
jzmain
jmpg4g5:movah,4ch
int21h
menu procfar ;显示主界面。
设置显示器方式。
movah,0
moval,3;
mov bl, 0;
int 10h ;清屏。
mov ah,2
mov bh,0 ;页号。
mov dl,5 ;列号。
mov dh,5 ;行号。
int 10h ;光标位置设置。
movah,9
leadx,string0
int21h
mov ah,2
mov dl,5 ;列号。
movdh,6 ;行号。
int 10h ;光标位置设置。
mov ah,9
lea dx,string1
int 21h
mov ah,2
mov dl,5 ;列号。
mov dh,7 ;行号。
int 10h; 光标位置设置。
mov ah,9
lea dx,string2
int21h
movah,2
mov dl,5;列号。
mov dh,8;行号。
int 10h;光标位置设置。
mov ah,9
lea dx,string3
int 21h
mov ah,2
mov dl,5 ;列号。
mov dh,9 ;行号。
int 10h ;光标位置设置。
mov ah,9
lea dx,string4
int 21h
mov ah,2
mov dl,5 ;列号。
mov dh,10 ;行号。
int 10h
mov ah,9
lea dx,string5
int 21h
mov ah,2
mov dl,5 ;列号。
mov dh,11 ;行号。
int 10h; 光标位置设置。
movah,9
lea dx,stringn
int 21h
retmenuendp
微机原理作业
微型计算机原理及应用 作业。作业组别 十八。班级 机电一班姓名 学号 作业指导教师 任课教师 实验室教师 作业完成时间 2013年4月17日。目录。1题目一31 1题目分析31.2寄存器的应用说明31.3程序框图31.4详细程序41.5程序调试的情况42题目二42.1题目分析52.2寄存器及主存等的...
微机原理作业
微型计算机原理及应用 作业。作业组别 第30组。班级 12级轧钢二班。姓名 贾闯 学号 120101020023 指导教师 李艳文 完成时间 2015年 05 月。一 题目及题目分析描述及要求。题目 内存中source处存放着10个字节型数据,请记录每个字节数据中二进制位1的个数,并按照数据字节在前...
微机原理作业
微型计算机原理及应用 作业。作业组别 第十一组。班级 10级机控一班。姓名 孙策。学号 100107010140 作业指导教师 李艳文 作业完成时间 2013年4月9日。目录。第一题 1 一 题目分析 1 二 寄存器及主存应用说明 1 三 程序框图 1 四 详细程序 1 五 程序调试情况 2 第二题...