计算机综合实践
报告
专业
班级 1103
姓名 学号 aDH1111t0044
实验 1 实时时钟程序设计
、实验目的 1.加深对课堂讲授内容的理解,掌握编程语言的语法规则。
2.熟悉所用的计算机系统的操作方法, 了解和熟悉程序开发环境。
3.学习上机调试程序的方法和技巧,提高编程能力。
二、实验内容
设计一个时钟显示程序,要求利用定时器 0 的定时中断记录时 间。
三、基本设备与器材配置
通用微型计算机一台。
软件环境:
1.操作系统: DOS、 Windows xp
2.语言环境:Debug调试程序、MASM宏汇编。
四、程序清单
assume cs:code
code segment
start:
; 清屏
mov ah,6 ;
mov al,0 ;
mov ch,0 mov cl,0 ;
mov dh,24
mov dl,79
mov bh,7
int 10h
l:
; 年
mov al,9
mov si,0
call s
mov byte ptr es:[160*12+2*40+4],'/'
; 月
mov al,8
mov si,6
call s
mov byte ptr es:[160*12+2*40+10],'/'
; 日
mov al,7
mov si,12
call s
mov byte ptr es:[160*12+2*40+16],' '
; 取时数并送入显存
mov al,4
mov si,18
call s
mov byte ptr es:[160*12+2*40+22],':'
; 取分数并送入显存
mov al,2
mov si,24
call s
mov byte ptr es:[160*12+2*40+28],':'
取秒数并送入显存
mov al,0
mov si,30
call s
jmp l
mov ax,4c00h
int 21h
? *******************子程序
? *******************
子程序
******************
; 名称: s;
; 名称: s
;作用:取出BCD码并送入显存
; 入参 :al 为单元数, si 为显存偏移地址变址
? *******************************************
s: push ax push bx push si out 70h,al in al,71h mov cl,4 mov ah,al shr ah,cl and al add al,30h add ah,30h mov bx,0b800h
mov es,bx
mov bx,160*12+2*40
mov es:[bx+si],ah
mov es:[bx+si+2],al pop si
pop bx pop ax ret
code ends end start
四、程序运行结果
16^07X30 19:93
实验 2 8255 并行接口键盘程序设计
一、实验目的
1.加深对课堂讲授内容的理解,掌握编程语言的语法规则。 2.熟悉所用的计算机系统的操作方法, 了解和熟悉程序开发环境。 3.学习上机调试程序的方法和技巧,提高编程能力。
二、实验内容
利用 09H 型中断设计一个自己的键盘中断服务程序,程序设计应 考虑在退出时不破坏原有的设置。
三、基本设备与器材配置
通用微型计算机一台。
软件环境:
1.操作系统: DOS、 Windows xp
2.语言环境:Debug调试程序、MASM宏汇编。
四、程序清单
dseg segment
addr_point dw ?
count dw ?
buffer db 20h dup(' ')
prompt db 'Please enter the characters:'
db 0dh,0ah,'$'
message db 'buffer overflow',0dh,0ah
save_ip9 dw
save_cs9 dw ?
dseg ends
cseg segment
assume cs:cseg,ds:dseg
main proc far
start:
push dx
sub ax,ax
push ax
mov ax,dseg
mov ds,ax
mov ax,offset buffer
mov addr_point,ax
mov count,0
mov al,09h
int 21hmov ah,35h
int 21h
;save interrupt vector of type 09h
mov save_ip9,bx
mov save_cs9,es
mov dx,offset kbint
push ds
mov ax,seg kbi