微机原理上机作业

发布 2022-09-04 21:46:28 阅读 7577

专业:班级:

学号:姓名:

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 第二题...