微机原理实验指导书09测控

2019-03-16 13:00

微机原理实验指导书

山东大学威海分校机电信息工程学院

2010年9月

1

目 录

实验一 1)十六进制数变为ASCII码并显示

2)查键码并显示其值

实验二 系统认识实验 实验三 数制转换实验 实验四 运算类编程实验 实验五 综合编程实验

(分支程序设计实验、循环程序设计实验、子程序设计实验) 实验六 静态存储器扩展实验 实验七 8259中断控制实验

实验八 8254(8253)定时/计数器应用实验 实验九 8255并行接口实验 实验十 DMA特性及8237应用实验 附录1 Wmd86 V5.2联机软件使用说明 附录2 系统编程信息

2

实验一 1)十六进制数变为ASCII码并显示

内容:两字节16进制数已在内存SOURCE_BUF中,变为ASCII码并显示。 目的:(1)熟悉PC机上 .EXE文件的汇编文件源文件格式。 (2)掌握清屏及置光标位置的方法。 (3)编写十六进制数变ASCII码子程序。 步骤:(1)在PC机上C:\\MASM 目录下,将DHEXASC1.ASM拷贝为ABC1.ASM,打开全屏幕

编辑器EDIT,打开源程序ABC1.ASM,检查无错。

(2)运行MASM.EXE 文件对 ABC1.ASM进行汇编生成ABC1.OBJ文件。 (3)运行LINK.EXE 文件对 ABC1.OBJ进行连接生成ABC1.EXE文件。 (4)运行ABC1.EXE 应正确显示SOURCE_BUF中内容并返回DOS。 (5)改变SOURCE_BUF中内容和光标位置,重复(1)—(4)步骤。 实验程序如下(DHEXASC1.ASM): DATA SEGMENT

SOURCE_BUF DW 1234H ;内存中为34H,12H DEST_BUF DB 0,0,0,0,“H$” ;字符串,$结尾 DATA ENDS

ASTACK segment STACK XY_BUF DB 50 DUP(0) ASTACK ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:ASTACK

START: MOV AX,DATA ;数据段段址,等同 MOV AX,SEG DEST_BUF MOV DS,AX ; DS指向数据段 LEA SI,SOURCE_BUF LEA DI,DEST_BUF

MOV AX,0600H ; AL=0

MOV BH,7 ;显示属性,黑底白字不闪 MOV CX,0 MOV DH,24 MOV DL,79

INT 10H ;清屏 MOV DH,8 ;行 MOV DL,20 ;列 MOV BH,0 ;0页 MOV AH,2

INT 10H ;置光标

MOV AH,[SI+1] ;取待显数(高字节) MOV AL,AH ;高字节→ AL AND AL,0FH ;低4位 CALL far ptr ASCI ;变ASCII

MOV [DI+1],AL ;高字节低4位存 MOV AL,AH ;高字节

3

MOV CL,4 SHR AL,CL

CALL far ptr ASCI ;高字节高4位变ASCII MOV [DI+0],AL ;高字节高4位存 MOV AH,[SI] ;取低字节 MOV AL,AH

SHR AL,CL ;低字节高4位 CALL far ptr ASCI ; 变ASCII MOV [DI+2],AL

MOV AL,AH ;低字节

AND AL,0FH ;低字节低4位 CALL far ptr ASCI MOV [DI+3],AL

MOV DX,DI ;DX指向高字节高4位 MOV AH,09H

INT 21H ;显示字符串,至 $ 结束 MOV AH,02H

MOV DL,0AH ;换行 INT 21H

MOV AH,4CH ;返回DOS INT 21H

ASCI PROC FAR ;将0~9,A~F变为ASCII码 ADD AL,30H

CMP AL,3AH ;(AL)-3AH

JL AS9 ;小于3AH则去AS9

ADD AL,07H ;不小于则为A~F(41H~ 46H) AS9: RET ASCI ENDP CODE ENDS

END START 练习题:

将程序改为,内存中有两个16位无符号数,求它们的差,并显示结果。 开发设计实验:

实验一 2)查键码并显示其值

目的:

(1)熟悉INT 16H,00H功能。 (2)练习单个字符显示方法。 步骤:

(1)在PC机上C:\\MASM 目录下输入文件KEYTESTA.ASM。

(2)分别运行MASM.EXE和 LINK.EXE 文件对 KEYTESTA进行汇编和连接。

4

(3)运行KEYTESTA.EXE ,击任一键应显示其ASCII码和扫描码。 (4)按ESC键返回DOS。

(执行int 16h,0h 得双字节键代码 ,第一个字节为所击键的ASCII码,第二个字 节为扫描码。不包括 Shift,Ctrl,Alt,PrintScreen,ScrollLock,Pause 等键。)

实验程序如下(KEYTESTA.ASM):

;int 16h,0h 得键 双ASCII码,第一个字节为所击键的ASCII码,第二个字节为扫描码, ; 按 ESC键 退出,显示为ASCII码H 扫描码H

; 不包括 Shift,Ctrl,Alt,PrintScreen,ScrollLock,Pause 等键

c_seg segment

assume cs:c_seg

again: mov ah,0

int 16h ;AH 为扫描码,AL为字符码(ASCII码) cmp al,1bh ;ESC jz exit

mov bx,ax ;bx中为扫描码和字符码(ASCII码) call keycode ;把键值变为ASCII码并显示,入口 BL mov bl,bh ;取扫描码

call keycode ;把键值变为ASCII码并显示,入口 BL next: mov dl,0ah ;换行 mov ah,2 int 21h

mov dl,0dh ;回车 mov ah,2 int 21h jmp again exit: mov ah,4ch

int 21h ;返回DOS

keycode proc near ;把键值变为ASCII码并显示,入口 BX mov ch,2 rotate: mov cl,4 rol bl,cl mov al,bl

and al,0fh ;先得到 BL中 D7D6D5D4 四位 add al,30h cmp al,3ah jl print add al,07h print: mov dl,al mov ah,2

5


微机原理实验指导书09测控.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:怎么才能终身学习?像孩子一样就行

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

马上注册会员

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