汇编语言大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
辽宁师范大学计算机与信息技术学院综合性实验报告
课程名称:汇编语言
实验题目:菜单程序设计
学生姓名:孙蕾
专业:计算机科学与技术
学号: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
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
push dx
cmp ax,0
jnz letb
mov dx,offset cc mov ah,9
int 21h
letc: pop ax
add ax,0030h
mov dl,al
int 21h
dec cx
cmp cx,0
jnz letc
jmp let0
prog2:mov ax,data
mov ds,ax
mov dx,offset mess1 mov ah,9
int 21h
let1:mov ah,1
int 21h
cmp al,0dh
jz exit1
test al,40h
jz let2
test al,20h
jz let3
mov lett[bx],al
inc bx
jmp let1
let3:cmp al,5ah
ja exit1
mov capi[si],al
inc si
jmp let1
let2:cmp al,'0'
jb exit1
cmp al,'9'
ja exit1
mov numb[di],al
inc di
jmp let1
exit1:mov ax,data
mov ds,ax
mov dx,offset mess2 mov ah,9
int 21h
add di,30h
mov dx,di
mov ah,2
int 21h
mov dx,offset mess3