实验一 汇编语言实验(2)

2018-11-28 18:15

实验三 音乐程序

实验目的:

1、掌握PC机发音原理及音乐程序编制方法。 2、8086指令: IN,OUT,DIV,OR 实验内容:

一、发音程序。

1、用DEBUG输入下列程序:

MOV DX,4000H IN AL,61H AND AL,FCH

LOP: XOR AL,02H

OUT 61H,AL MOV CX,0140H

DEY: LOOP LOP

DEC DX JNE LOP INT 21H INT 20H

2、在DEBUG下运行此程序,改变延时时间常数,注意声音高低变化。 二、音乐程序。

1、输入,汇编,连接并运行下列程序: stacksg segment para stack

dw 32 dup(?)

stacksg ends datasg segment tiger db 0ah,0dh,'two tiger。$' tig_freq dw 2 dup(262,294,330,262)

dw 2 dup(330,349,392) dw 2 dup(392,440,392,349,330,262) dw 2 dup(294,196,262),0ffffh

tig_time dw 10 dup(25),50,25,25,50

dw 2 dup(12,12,12,12,25,25) dw 2 dup(25,25,50)

datasg ends codesg segment

assume cs:codesg,ds:datasg,ss:stacksg

start: mov ax,datasg

mov ds,ax lea dx,tiger mov ah,9 int 21h

lea si,tig_freq lea bp,ds:tig_time

5

call play mov ah,4ch int 21h

play proc freq: mov di,[si]

cmp di,0ffffh je end_ply mov bx,ds:[bp] call sound add si,2 add bp,2 jmp freq

end_ply: ret play endp sound proc

mov al,0b6h out 43h,al mov dx,14h mov ax,4f38h div di out 42h,al mov al,ah out 42h,al in al,61h mov ah,al or al,3 out 61h,al

wait: mov cx,5000 spkr_on: loop spkr_on

dec bx jnz wait mov al,ah out 61h,al ret

sound endp codesg ends

end start

2、修改程序,使它能演奏一首你所喜爱的歌曲。 3、若歌曲中有休止符,怎么办? 实验报告:

1、实验记录和体会。 2、自编程序。

6

实验四 键盘和窗口程序

实验目的:

1、掌握利用INT 16H 2号功能调用实行键盘输入的方法。 2、熟悉键盘的扫描码和ASCII码的关系。

3、掌握利用INT 10H功能调用实现窗口功能的方法。 实验内容:

一、键盘输入程序

1、程序:

PRO_NAM AGAIN: BINIHEX ROTATE: PRINT:

SEGMENT

ASSUME CS:PRO_NAM ORG 100H

MOV AH,0

INT 16H MOV BX,AX CALL BINIHEX MOV AH,2 MOV dl,20h INT 21H MOV DL,BL MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H JMP AGAIN INT 20H

PROC NEAR

MOV CH,4

MOV CL,4

ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINT ADD AL,7

MOV DL,AL

MOV AH,2 INT 21H DEC CH

7

JNZ ROTATE RET

BINIHEX ENDP PRO_NAM ENDS

END AGAIN

2、输入,汇编,连接此程序,并将它转变成。COM文件。

3、运行此程序,观察并记录各个键的扫描码,ASCII码及对应字符。 二、窗口程序:

1、程序: code segment

assume cs:code,ss:code org 100h

start: mov ax,600h

mov cx,0 mov dx,184fh mov bh,7 int 10h

pos: mov ah,2

mov dx,101eh mov bh,0 int 10h mov cx,20

get: mov ah,1

int 21h cmp al,1bh jz exit loop get mov ax,601h mov cx,81eh mov dx,1031h mov bh,7 int 10h jmp pos

exit: int 20h code ends

end start

2、将此程序输入并转变成。COM文件。

3、运行此程序,观察按不同键所产生的效果。 4、此程序所产生的窗口效果有何缺陷?试修改之。 实验报告: 1、实验记录。 2、自编程序。

8

实验五 活动图形显示程序

实验目的:

1、掌握利用INT 10H实现活动图形的方法。 2、INT 10H 的 2号,6号,0AH号功能。 实验内容:

参考下列程序自编一活动的复合图形显示程序。 程序一 活动字符图形显示程序:

stack segment stack

db 256 dup(0)

stack ends code segment

assumecs: code,ss:stack

move: mov cx,0

mov dx,184fh mov bh,7 mov ax,0618h int 10h mov dx,0 mov cx,1 mov bh,0

rept: mov ah,2

int 10h mov ah,10 mov al,0fh int 10h call dely mov al,20h mov ah,10 int 10h inc dh inc dl inc dl cmp dh,25 jne rept mov ah,4ch int 21h

dely proc

push cx push dx mov cx,5

lop: mov dx,0 lop1: dec dx

jne lop1 loop lop

9


实验一 汇编语言实验(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈街道如何处理好新时期涉军群体上访问题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: