汇编语言大作业
辽宁师范大学计算机与信息技术学院
综合性实验报告
课程名称: 汇编语言
实验题目: 菜单程序设计
学生姓名: 孙蕾
专业: 计算机科学与技术
学号: 20101118050005
实验日期: 2012.5.10
实验成绩:
实验目的
设计菜单程序,实现各种功能,设计分支程序,重键盘输入字符。
实验内容
(1)参考示例5-8设计菜单程序,包含示例5-2、示例5-3及退出三个菜单项。将示例5-2改为从键盘输入X;示例5-3增加显示功能,显示出统计个数。(P120、P101、P106)
(2)选作:参考P213第9章示例9-3,在屏幕上清屏、开窗口,将菜单程序带颜色地显示在窗口中。提示:可利用P223宏库9-4.mac中的功能。
实验过程(含结果抓图)
1.输入程序代码
data segment
x dw ?
y dw ?
cc db 0ah,0dh,'Y=$'
mess0 db 0ah,0dh,0dh,'****************MENU******************'
db 0ah,0dh, '*1. calculate Y=5X-18: *'
db 0ah,0dh, '*2. count the numbers of a string: *'
db 0ah,0dh, '*3. exit *'
db 0ah,0dh, '*^^ please select... *'
db 0ah,0dh, '**************************************'
db 0ah,0dh,' $'
mess1 db 0ah,0dh,0dh,'please input a string :$'
c db 0ah,0dh,0dh,'please input a number :$'
mess2 db 0ah,0dh,'numb:$'
mess3 db 0ah,0dh,'capi:$'
mess4 db 0ah,0dh,'lett:$'
mess5 db 0ah,0dh,0dh,'thank you for using!!$'
numb db 10 dup(?)
capi db 10 dup(?)
lett db 10 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
let0:mov dx,offset mess0
mov ah,9
int 21h
mov ah,1
int 21h
cmp al,'1'
jz prog1
cmp al,'2'
jz prog2
jmp prog3
prog1:
mov ax,data
mov ds,ax
mov dx,offset c
mov ah,9
int 21h
inx:
mov ah,1
int 21h
cmp al,30h
jl inx
cmp al,3Ah
jnl inx
sub al,30h
mov ah,0
mov x,ax
mov al,5
imul x
sub ax,18
jns leta
neg ax
leta:mov y,ax
mov cx,0
mov bx,10
letb:mov dx,0
inc cx
idiv bx