汇编语言大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档