微机原理实验3

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三接收年月日信息并显示的程序

班级:学号:姓名:

一.实验目的:

掌响响铃符方法,掌握年同,月,日输入方法。

二.实验内容:

显示输入提示信息并响铃一次,铁后接收键盘输入的月/日/年信息,并显示。若输入月份日期不对,刚显示错误提示并要求重新输入。

三:程序

DATAS SEGMENT

masg db 'what is the date?',13,10,'$'

mess1 db 'please input the month:',13,10,'$'

mess2 db 13,10,'please input the day:',13,10,'$'

mess3 db 13,10,'please input the year:',13,10,'$'

errmess db 13,10,'error!!please input right date!',13,10,'$'

mon db 2 dup(?)

day db 2 dup(?)

year db 4 dup(?)

DATAS ENDS

STACKS SEGMENT

db 200 dup(?) ;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

main proc far

MOV AX,DATAS

MOV DS,AX

lea dx,masg

mov ah,9

int 21h

call sound

;input month

lea dx,mess1

mov ah,9

int 21h

mov cx,2

mov si,0

lop1:

mov al,mon[si]

mov ah,1

int 21h

mov mon[si],al

inc si

loop lop1

;判断月份是否输入正确 compar1:

mov bl,mon[0]

sub bl,30h

mov al,10

mul bl

mov cl,mon[1]

sub cl,30h

sub ch,ch

add ax,cx

cmp ax,1

jl err

cmp ax,12

jg err

;判断日期是否输入正确;input day

lea dx,mess2

mov ah,9h

int 21h

mov cx,2

mov si,0

lop2:

mov al,day[si]

mov ah,1

int 21h

mov day[si],al

inc si

loop lop2

compar2:

mov bl,day[0]

sub bl,30h

mov al,10

mul bl

mov cl,day[1]

sub cl,30h

sub ch,ch

add ax,cx

cmp ax,1

jl err

cmp ax,30

jg err

;input year

lea dx,mess3

int 21h

mov cx,4

mov si,0

lop3:

mov al,year[si]

mov ah,1

int 21h

mov year[si],al

inc si

loop lop3

jmp exit

err: lea dx,errmess

mov ah,9h

int 21h

jmp exit

exit: MOV AH,4CH

INT 21H

main endp

;-------------------------------------------------- ;发声子程序

sound proc near

push ax

push dx

mov cx,1111111111111111b

mov bx,10000

mov ax,cx

mov dx,cx

in al,61h

and al,11111100b

trig:xor al,2

out 61h,al

mov cx,bx

delay:loop delay

dec dx

jne trig

pop dx

pop ax

ret

sound endp

;-------------------------------------------------- CODES ENDS

END START

相关文档
最新文档