微机原理与接口专业技术实验书_第1页
微机原理与接口专业技术实验书_第2页
微机原理与接口专业技术实验书_第3页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 性 能 特 点1.1 系统组成HK8086 微机教学实验系统是在继承 8086T 和 8086T1 微机教学实验机优点的基础上, 广泛地吸取用户的使用意见和建议,利用超想 3000 综合实验仪上的硬件资源 ,结合 8086/88 仿真技术,推出的新一代微机教学实验系统。1.2 HK8086 实验机性能特点1.2.1 性能特点HK8086 教学实验系统集微处理器 8086 和外配 PC /80286/386/486/586 及其兼容机于一 体的高科技实验系统,具有实验、开发、 自诊断等功能, 是目前实验机市场上较先进的一种 学习微机外围接口技术和微处理器原理的教学实验系统。该实验系统自带

2、键盘、八位七段数码管、微处理器 8086 和 USB 通讯接口,可以接 PC 机做实验,也可以无须任何辅助设备而独立做实验。实验机上提供 32KB RAM 的程序和数 据空间,具有无条件暂停(夭折处理)等功能。综合下来,它具有如下性能特点:1、具有夭折处理功能。 在串行监控方式下,执行用户程序后,按暂停键,能保存用户 现场返回监控,帮助查找程序跑飞、死循环等原因。2、提供简单易学的可视化窗口调试软件和实验软件集成环境。在该环境下,可以选择编辑、连接、单步跟踪、设置断点、全速运行、查找芯片等功能。在该环境下,提供了所有 的硬件参考实验程序和原理图。3、易于扩充实验模块 。在实验机上设计了一个自由

3、实验区,便于用户利用实验机上的 模块或芯片扩充实验和开发综合性微机外围接口实验。4、采用波峰焊接、热风整平技术 。整块实验板上均采用先进的焊接技术,具有性能稳 定、可靠等特点。 本实验系统提供 32KB RAM 程序和数据空间, 24个键键盘, 6个七段 LED 数码管显示。5、软硬件实验丰富 。实验设计丰富、合理,满足各类院校微机接口实验教学要求;实 验板上实验模块化,互不影响。为了方便老师编程,我公司提供了 40 几个软硬件实验程序 以供作参考。1.2.2 实验系统资源分配8086 有 1 兆寻址空间,在单板机和串行监控方式下,实验系统提供给用户使用空间: 00000H-6FFFFH ,8

4、0000H-FFFFFH ,包括总清入口共 960K 存储空间。 其中 80000H-87FFFH 是实验机提供的 RAM 空间,可供用户系统存放实验程序。监控占用 80000H-80013H 作为单步、断点、无条件暂停。系统 00000H-000FFH 与 80000H-800FFH 是重合的,总是访问实验内部 RAM ,所以,此区间用户的其他中断矢量可 存放于此。另外, 80100H-802FFH 为监控数据区或用户堆栈区,在实验程序加载时,起始 地址要大于 80300H 也就是这个道理。70000H-7FFFFH 为实验机提供的 64KEPROM 地址空间, 存放实验机监控程序, 用户不

5、 可占用。80000H-87FFFH 为实验机提供的 32KRAM 地址空间,用户可以存放实验程序和数据。0000H-FFFFH 共 64KI/O 空间全提供给用户使用。实验机已译码 200H-23FH 地址空间 给用户使用。第二章 实验机模块原理HK8086 实验机主板由许多独立的硬件实验模块组成,用户可用它们组成各种各样的硬件 实验。学生在用硬导线组合实验时,一方面理解了实验模块的原理,另一方面也锻炼了动手能力。本实验板主要包括8255并行口模块、双色灯模块、单色灯模块、分频器模块、A/D转换模块、D/A转换模块、串行通讯8251模块、定时/计数器8253模块、8259中断控制器模块和 单

6、脉冲等模块。下面将详细地介绍各个模块的逻辑图及其功能与用途:1.1可编程并行口 8255模块e347 D # H弓 M乂>*北m北331<DJ 4-L £讣华匚U 1 38Z55吕仝目Q12P145W7 P 口口ARUAPFQ-P戸尸 PP©1234567 B BBBQ3曰 B B PPF户PP户尸01234C-67CCCCCCCCPPPFPPF户012457 IRBIESDDDDDDDD suAARC民吕|R2 9弓4.7k 片1 日 RESET 35厂:口 G吕S3PP 1 2 y :1P A3 "4 0 PA4 38 PA6 *3 7 PA 7

7、B1 8 PB613 FBI*PE2:2: 1 PB3 *22 PB4 *左 3 PBS 2£4 PBt *25 PB7 :i 4 pee 1 5 PC 1 1i 7 155 1 3 PC4 '1 2 PCS "1 1 PC6 -1 0 PC7 "斗 产A08255 地址是 PA 口 CS+OH PB 口 CS+1H PC 口 CS+2H 命令控制口 CS+3H 其中,CS为 8255片选信号首地址,若 CS=200H则,PA 口地址为200H, PB 口地址为 201H, PC 口地址 为202H,依次类推。在下面的模块中也是如此说明。该模块在实验中主要

8、处理数据并行输 入/输出,如开关量的输入;单色LED/双色LED的输出,键盘实验等。1.2 双色LED灯模块:双色灯输入由8255来驱动,主要用来做模拟交通灯实验。1.3 单色LED灯模块:单色LED灯输入DL1-DL8可由8255来驱动,用来完成单色灯实验。20EJBL7 L6 L5 L4 13 Lt LI 10|44_ J_ 尺_ J_ J_ J%民%尺%尺F L左审证 L尢吨1.4 电 位器:该模块主要为 A/D转换提供模拟输入电压。1.5 分频器模块1.6单脉冲电路1.7步进电机驱动电路1.84PQQPF /4 F /8D该电路通过2003驱动步进电机。步进电机脉冲信号可以由8255提

9、供。A/D转换器模块t-f Wrl旳t-t 四*S-Js-fR«i-70円ra;u*J丸yAfn-m ca,AJDiJJEHJ m-7AXE:EUrAH £:AJJ +)CUXfL0叩心。.17 09inlA10liranJ 0tftJJ1=Zi>r ”idr >”岁呼才LtJ& ZL70 F y匚0Cejbb.O y理片t 一 /1120809 各通道的口地址是 CS+OH CS+1H CS+2H CS+3H CS+4H CS+5H CS+6H CS+7H 用于A/D转换实验。1.9 D/A 转换器模块:该电路可以用于做 D/A转换实验和驱动直流电机实

10、验。0832 口地址为 CS329JL1.10 8251可编程串行通讯模块:可用来做8086与PC机通讯的实验。D02725DE1D32D45DE.6g7D78TOR旧L、IO'Ww OAO12 °CLOCK20USTDRV21GW?4DCr1D2D(3D4D5需DTkDRkD CTSTmRDTTkCLE TxEMPTRkRDYRkCL£ SYNDET DSR DTR RTSvcc1?141.11 可编程定时/计数器模块vccA0XTDOOUTODIGATEDD2CLK&D3D4DSD6OUTlD76ATE1CLK>CSRDWRAOGATE2AlCLJ

11、Q斗1S2531920naGHDOUTOGATEDCLKD0UT1GATE1CLK本电路模块可用于产生定时中断,实现实时时钟实验等,具体接法请参照实验。本电路口地址为CS531.12 8259中断控制器实验模块VCC1110O 12-3456 -7DDDDDDDDgl 2 3 4 < J 7 I1319202122232425«1KD «IR14.7 INTR:INTA17INTINTASP/ENVCCCASOCAS1CAS2121515CS RDV7RAO本模块为8259中断实验模块,在串行监控方式下做8259中断实验。1.13 开关量输入实验模块11I1ooooo

12、oOOOOOOooooK7 K6 ICS K4 K3 IK2 KI KO第三章软件实验部分实验一两个多位十进制数相减实验一、 实验要求:将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序存放在以DATAI和DATA2为首的5个内存单元中(低位在前),结果送回DATAI处。二、实验目的:1 学习数据传送和算术运算指令的用法。2 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。三、实验程序框图: 四、实验程序:文件路径为 C: HK88TEcaiasmRuanjianRjexp1.asmDATA SEGMENTDATA1DB33H,39H,31H,37H,38H;第一

13、个数据(作为被减数)DATA2DB36H,35H,30H,38H,32H;第二个数据(作为减数)MES1DB'-','$'MES2DB'=','$'DATA ENDSSTACK SEGMENT;堆栈段STA DB 20 DUPTOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DA TASTART: MOVMOVMOVMOVMOVMOVMOVMOVAX,DATADS,AXES,AXAX,STACKSS,AXAX,TOPSP,AXSI

14、,OFFSET DATA1MOVBX,05CALLDISPL;显示被减数MOVAH,09HLEADX,MES1INT21HMOVSI,OFFSETDATA2MOVBX,05;显示减数CALLDISPLMOVAH,09HLEADX,MES2INT21HMOVSI,OFFSET DA TA1MOVDI,OFFSETDATA2CALLSUBA;减法运算MOVSI,OFFSETDATA1MOVBX,05;显示结果CALLDISPLMOVDL,0DHMOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HINT21HMOVAX,4C00HINT21HDISPLPROCNEAR;显示

15、子功能DSI:MOVAH,02MOVDL,SI+BX-1;显示字符串中一字符INT21HDECBX;修改偏移量JNZDSIRETDISPLENDPSUBAPROCNEARMOVDX,SIMOVBP,DIMOVBX,05SU1:SUBBYTE PTRSI+BX-1,30HSUBBYTE PTRDI+BX-1,30HDECBX;将 ASCII 码表示的数字串JNZSU1;转化为十六进制的数字串MOVSI,DXMOVDI,BPMOVCX,05; 包括进位 ,共 5 位CLC;清进单位SU2:MOVAL,SIMOVBL,DISBBAL,BL;带进位相减AAS;非组合 BCD 码的减法调整MOVSI,A

16、L;结果送被减数区INCSIINCDI;指向下一位LOOPSU2;循环MOVSI,DXMOVDI,BPMOVBX,05SU3:ADDBYTE PTRSI+BX-1,30HADDBYTE PTRDI+BX-1,30HDECBX;十六进制的数字串转化 ASCII 码表示的数字串JNZSU3RETSUBAENDPCODEENDSENDSTART实验二 两个数相乘的实验一、实验要求:实现十进制数的乘法, 被乘数和乘数均以 ASCII 码形式存放在内存中, 算式结果在屏幕上显 示出来。二、实验目的: 掌握乘法指令和循环指令的用法。三、实验程序框图:四、实验程序:DATA SEGMENTDATA1 DBD

17、ATA2 DB32H,39H,30H,35H,34H34HMES1 DB'*','$'MES2 DB'=','$'RESULT DBDATA ENDS6 DUP (00H)STACK SEGMENTSTA DB20 DUP (?)TOP EQULENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DA TASTART: MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,TOPLEASI,DATA1MOVBX,05H

18、L1:MOVAH,02HMOVDL,SI+BX-1INT21HDECBXJNZL1MOVAH,09HLEADX,MES1INT21HLEASI,DATA2MOVAH,02HMOVDL,SIINT21HMOVAH,09HLEADX,MES2INT21HMOVSI,OFFSET DATA2 ; 显示算式MOVBL,SI;乘数 DATA2 t BLANDBL,00001111B; 屏蔽高 4 位 ,ASCII 码转化为十六进制数MOVSI,OFFSET DATA1MOVDI,OFFSET RESULTMOVCX,05LOOP1:MOVAL,SIANDAL,00001111B; 取被乘数 DATA1,

19、ASCII 变十六进制数INCSI; 指向被乘数 1 的下一字符单元MULBL; 相乘AAM;AAM 调整ADDAL,DI;结果低位与前次计算的进位相加AAA;AAA 调整MOVDI,ALINCDI;结果送存到下一单元MOVDI,AHLOOPLOOP1; 计算结果高位进位送存MOVCX,06MOVSI,DIDISPL:MOVAH,02MOVDL,SIADDDL,30HINT21HDECSILOOPDISPL; 显示结果MOVAX,4C00HINT21H; 结束CODEENDSENDSTART实验三 BCD 码相乘实验一、实验要求:实现 BCD 码的乘法,要求被乘数和乘数以组合的BCD 码形式存

20、放,各占一个内存单元,乘积存入在另外两个内存单元中,由于没有组合的BCD 码乘法指令,程序中采用将乘数 1 作为计算器,累加另一个乘数的方法得到计算结果。二、实验目的:掌握用组合的 BCD 码表示数据,并熟悉怎样实现组合 BCD 码乘法运算。三、实验程序框图: (附后)四、实验程序:DATASEGMENTFIRSTDB 99HSECONDDB 25HTHIRDDB 2 DUP(?)MES1DB '*','$'MES2DB '=','$'DATAENDSSTACK SEGMENT PARA STACK 'STACK'

21、STAPN DB 100 DUP(?)TOP EQU LENGTH STAPNSTACK ENDSCODE SEGMENTSTART: MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVBL,FIRSTMOVCL,SECONDMOVDX,0MOVAL,BLASSUME CS:CODE,DS:DATA,SS:STACK; 被乘数送 BL ; 乘数送 CL ;部分积清 0;被乘数减到 0 则转结果显示AGAIN: ORAL,ALJZDONEMOV AL,DLADD AL,CLDAA ; 乘数于部分积低位相加后调整MOV DL,ALMO

22、V AL,DHADC AL,0DAA; 往部分积高位送进位后调整MOV DH,ALMOV AL,BLDEC ALMOVBL,ALJMPAGAINLEABX,THIRDMOVBX,DXLEASI,FIRSTCALLDISXORAX,AXMOVAH,09HLEADX,MES1INT21HLEASI,SECONDCALLDISXORAX,AXLEADX,MES2MOVAH,09HINT21HLEASI,THIRDINCSIDONE:CALL DEC CALL MOV INT DIS PROCDISSIDISAX,4C00H21HNEAR;返回 DOS;显示子程序MOVAL,SIMOVCL,04HSH

23、RAL,CLADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,SIANDAL,0FHADDAL,30HMOVDL,ALMOVAH,02HINT21HRETDIS ENDPCODE ENDSEND START实验四 字符匹配程序一、实验要求: 用串操作指令设计程序, 实现在指定存储区 6000:0-6000 :100(长度为 100H) 中寻找匹配字符,遇空格字符(20H)结束,退出时给出是否找到的信息。二、 实验目的:掌握 8086 的串操作指令的使用方法。三、 实验说明:1、8086 中用于字符串检索的指令为 SCAXB/SCASW ,用 AL 中的字节或者 AX

24、中的字 与位于 ES 段由 DI 寄存器所批的内存单元的字节或字相比较。通过前缀的控制,可以实现 在DI所指的字母串中,寻找第一个与AL (或AX )的内容相同(或不同)的字节(或字) 。2、对于所有的串操作指令,都要注意方向标志的设置, 指令CLD使方向标志DF清0,SI 和 DI 自动增量修改,指令 STD 使 DF 置 I , SI 和 DI 作自动减量修改。 四、实验程序框图:五、实验程序:DATA SEGMENTMESS1 DB'按下回车后在 6000:0-100 范围内寻找空格符!',0DH,0AH,'$'MESS3 DB'找到空格符 !&#

25、39;,0DH,0AH,'$'MESS4 DB'寻找范围内没有空格符 !',0DH,0AH,'$'DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DA TA,SS:STACKSTART: MOV AX,DA TAMOVDS,AX;初始化MOVES,AXMOVAH,09HMOVDX,OFFSET MESS1INT21H; 显示信息 1MOV AH,08HINT 21HMOVAX,6000HMOVES,AXMO

26、VDI,0;偏移量送 DICLD;清方向标志MOVCX,0100H;长度为 100H 字节MOVAL,20H;空格符 20HREPNZSCASBJNZAA;全都不为 20H 则转 AAMOVAH,09HMOVDX,OFFSET MESS3INT21H;显示 "找到 "信息JMPBBBAA:MOVAH,09HMOVDX,OFFSET MESS4INT21H;显示"没找到 "信息BBB:MOVAX,4C00HINT21H;结束CODEENDSENDSTART实验五 字符串匹配程序、实验要求: 编写程序,实现两个字符串比较。如相同,则显示“ MATCH ”,否

27、则,显示 NOMATCH ”。、 实验目的:掌握提示信息的使用方法及键盘输入信息的用法。三、 实验程序框图:四、实验程序:CRLF MACRO;显示回车MOV DL,0DHMOV AH,02HINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMESS1DB'MATCH',0DH,0AH,'$'MESS2DB'NO MA TCH',0DH,0AH,'$'MESS3DB'INPUT STRING1!',0DH,0AH,'$'MESS4DB'INP

28、UT STRING2!',0DH,0AH,'$'MAXLEN1DB81STRING1 DB81 DUP(?)MAXLEN2 DB81STRING2 DB81 DUP(?)DATAENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAH,09HMOVDX,OFFSET MESS3INT21H;显示输入提示信息 1MOVAL,MAXLEN1MOVBX,OFFSET STRING1MOVBX,AL;最大字符缓冲MOVAH,0AHMOVDX,OFFSET STRING1I

29、NT21H;接收键入的字符串 1CRLFMOVAH,09HMOVDX,OFFSET MESS4INT21H; 显示输入提示信息 2MOVAL,MAXLEN2MOVBX,OFFSET STRING2MOVBX,AL;最大字符缓冲设置MOVAH,0AHMOVDX,OFFSET STRING2INT21H;接收键入的字符串 2CRLFCLDLEASI,STRING1;字符串 1 的地址送给 SIMOVCL,SI+1;字符串 1 的字符数送给 CXMOVCH,0KKK:LEADI,STRING2;字符串 2 的地址送给 DIMOVDL,DI+1;字符串 2 的字符数送给 DXMOVDH,0ZJ2:MO

30、VAL,SI+2;字符串 1 的第一个字符在字符串 2 中匹配CMPDI+2,ALJEZJ3;匹配成功则跳转ZJ1:INCDI;指向字符串 2 下一个字符DECDXJZGGG;字符串 2 完,不匹配JMPZJ2;字符串 2 没完 ,重新匹配ZJ3:DECCXJZMMM;字符串 1 完,匹配DECDXJZGGG;字符串 2 完,不匹配INCSI;指向串 1 下一个字符INCDI;指向串 2 下一个字符MOVAL,SI+2CMPDI+2,ALJEZJ3;匹配 ,跳转DECDXJZGGG;字符串 2 完,不匹配LEASI,STRING1;重新从串 1 的第一个字符匹配MOVCL,SI+1MOVCH,

31、0INCDIJMPZJ2MMM:MOV AH,09H;输出匹配信息MOVDX,OFFSET MESS1INT21HJMPPPPGGG:MOVAH,09H;输出不匹配信息MOVDX,OFFSET MESS2INT21HPPP:MOVAX,4C00H;程序终止INT21HCODEENDSENDSTART实验六 从键盘输入数据并显示、实验要求:编写程序, 将键盘接收到的四位十六进制数转换为等值的二进制数,再显示在屏幕上。 若输入的不是 0-F 间的数字, 则显示出错信息, 并要求重新输入。、 实验目的:掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为 ASCII 码的 原理,并在程序中设置错误

32、出口。三、实验程序框图:四、实验程序:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMARK DB ?MESS DB '输入四位十六进制数 , 按回车键转化为二进制数 ,空格键结束 !',0DH,0AH,' 输 入:$'ERROR DB 0DH,0AH, ' 输入错误 !',0DH,0AH,'$'DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?) TOP DW ?STACK ENDSCODE

33、SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOPHEAD: CRLFMOV MARK,0;显示提示输入的信息;接收键入数值送 DX;16 位;循环左移 1 位;屏蔽掉高 7 位MOV AH,09H LEA DX,MESS INT 21H CALL GETNUMCMP MARK,01H JE HEADMOV CX,0010HMOV BX,DXTTT: ROL BX,1MOV DL,BLAND DL,01HADD DL,30HMOVAH,02HINT21H;

34、显示二进制位对应的 ASCII字符LOOPTTTJMPHEADFINI:MOVAX,4C00HINT21H;返回 DOSGETNUMPROC NEAR;子程序 ,接收键入数值送DXPUSHCXXORDX,DXGGG:MOVAH,01HINT21HCMPAL,0DH;输入为回车 ,则进行转换JEPPPCMPAL,20H;输入为空格 ,则退回 DOSJEFINICMPAL,30HJB KKK SUB AL,30H CMP AL,0AH JB GETS CMP AL,11H JB KKK SUB AL,07HCMP AL,0FH JBE GETS CMP AL,2AH JB KKK CMP AL,2

35、FH JA KKK SUB AL,20H GETS: MOV CL,04 SHL DX,CL XOR AH,AH ADD DX,AX JMP GGG KKK: MOV AH,09HMOV DX,OFFSET ERROR INT 21H MOV MARK,01HPPP: PUSH DXCRLF POP DX POP CX RET GETNUM ENDP CODE ENDSEND START实验七 字符和数据的显示程序一、实验要求:显示信息“输入字符串,回车或空格结束” ,空格或回车后显示输入字符串 总字符数,数字字符( 1-9)及非数字字符数。二、 实验目的:掌握字符和数据的显示方法。三、 实验

36、程序框图:四、实验程序:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATASEGMENTMESS1DB'输入字符串 ,按空格或回车键结束 $'MESS2DB'字符总数 = $'MESS3DB'非数字字符总数 = $'MESS4DB'数字字符总数 = $'TOTALDW?DATAENDSSTACKSEGMENTSTADW32 DUP (?)TOPDW?STACKENDSCODESEGMENTASSUME CS:CODE,DS:DATA,ES

37、:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVSP,TOP;初始化MOVBX,0000H;计数值清 0MOVAH,09HMOVDX,OFFSET MESS1INT21HCRLFXXX:MOVAH,01HINT21H;接收键入字符CMPAL,20HJZUUU;是空格键则转 UUUCMPAL,0DHJNZIIICRLF;是回车键则转 UUUJMPUUUIII: CMP AL,30HJB YYYCMP AL,39HJBEVVV;'0-9' 转 VVVYYY:INCBX;计数值加 1VVV:INCTOTALJMPXXXUUU:CRLF

38、MOVAH,09HLEADX,MESS2; 显示字符总数INT 21HMOV AX,TOTAL CALL DISPMOVAH,02HMOVDL,'H'INT 21HCRLF;回车换行MOV AH,09HMOV DX,OFFSET MESS3INT 21H;显示非数字字符总数MOV AX,BXCALL DISPMOV AH,02HMOV DL,'H'INT 21H;十六进制数标志CRLF;显示数字字符总数MOV AH,09HLEA DX,MESS4INT 21HMOV AX,BXSUB TOTAL,AXMOV AX,TOTALCALL DISPMOV AH,02H

39、MOV DL,'H'INT 21HMOVAX,4C00HINT21HDISPPPROC NEAR; 显示子程序 , 显示MOVBL,AL;AL 中数送 BLKKK:MOV DL,BLMOVCL,04ROLDL,CLANDDL,0FHCALL DISPL; 显示字节高位MOVDL,BLANDDL,0FHCALL DISPL; 显示字节低位RETDISPPENDPDISPLPROC NEARADDDL,30H; 由数值转为参应字符的ASCII 码AL 中的数按十六进制数方式CMP DL,3AHDDDJBDDD:ADDMOVINTDL,27HAH,02H21H;是 0-9 转 DDD

40、;是 A-FRETDISPLDISPENDPPROC NEAR;显示 DL 中字符;返回;显示子程序 ,显示 AX 中的数按十六进制数方式DISPCODEPUSH BXPUSH CXPUSH DXPUSH AX;入栈保存MOV AL,AHCALL DISPP;显示高字节POP AXCALL DISPP POPDXPOPPOPRETENDPCXBX;出栈ENDSEND START实验八响铃程序一、 实验要求:从键盘按收输入字符,如是数字N,则响铃N次,如不是数字或数字是二、实验目的: 掌握响铃符的使用方法。三、实验程序框图:四、实验程序:0,则不响。DATA SEGMENTMESS1 DB &#

41、39; 按下数字键 ,响铃对应次数 ,回车或空格键则返回 ',0DH,0AH,'$'DATA STACK SEGMENTSTA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDSENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOVAX,DA TAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXMOVSP,TOPMOVAH,09HLEADX,MESS1INT21H;段寄存器和堆栈初始化;读取键盘字符KKK: MOV AH,01H INT 21H

42、CMP AL,0DHJEPPP;是回车则转结束CMPAL,20H;是空格则转结束JEPPPCMPAL,39HJAKKK;非字符 1-9 转 KKKSUBAL,2FHXORAH,AHMOVBP,AX; 对应次数送 BPGGG:DECBPJZKKKMOVAH,02HMOVDL,07HINT21H;响铃 1 次MOVCX,0FFFFHUUU:LOOP UUU;延时一段时间JMPGGGDECBP;次数减 1JNZGGG;不为 0 则转 GGGPPP:MOVAX,4C00HINT21H;返回 DOSCODEENDSENDSTART实验九 接收年、月、日信息显示并显示。一、实验要求: 显示输入提示信息并响

43、铃一次, 然后接收键盘输入的月 / 日/年信息, 若输入月份日期不对,则显示错误提示并要求重新输入。二、实验目的: 掌握响铃符方法,掌握年、月、日输入方法。三、实验程序框图:四、实验程序:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMESS DB'按顺序输入月 ,日 ,年,每输完一样按回车 (MM/DD/YY)',0DH,0AH,'$'MESS1 DB'月份错误 ,重新输入 ',0DH,0AH,'$'MESS2 DB

44、'日期错误 ,重新输入 ',0DH,0AH,'$'ERROR DB'输入错误 ,重新输入 ',0DH,0AH,'$'MARK DB ?REG DW ?DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DA TA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOPHEAD: MOV MARK,0MOV AH,09HMOV DX,OF

45、FSET MESS INT 21HMOV AH,02HMOV DL,07H INT 21HCALL GETNUMCMP MARK,01HJE HEAD PUSH DXCALL GETNUM CMP MARK,01HJNE K1POP DXJMP HEADK1: PUSH DX CALL GETNUM CMP MARK,01H JNE K2 POP DX POP DX JMP HEADK2: MOV AX,DX CALL DISP NOPMOV AH,02HMOV DL,'-' INT 21H POP DX POP AX PUSH DX MOV REG,AX AND AX,00F

46、FH CMP AX,0012H JBE W1 MOV AH,09H LEA DX,MESS1;初始化;清错误标志;显示提示信息;响铃 1 次; 接收键入的月值 ,日值及年值;显示年值;显示'-'INT 21HJMP STARTW1:MOVAX,REGCALLDISPPMOVAH,02HMOVDL,'-'INT21HPOPAXMOVREG,AXANDAX,00FFHCMPAX,31HJBEW2MOVAH,09HLEADX,MESS2INT21HJMPSTARTW2:MOVAX,REGCALLDISPP;显示日值MOVAX,4C00HINT21H;返回 DOSDISPPPROCNEARMOVBL,ALMOVDL,BLMOVCL,04ROLDL,CLANDDL,0FHCALLDISPLMOVDL,BLANDDL,0FHCALLDISPLRETDISPPENDPDISPLPROCNEARADDDL,30HCMPDL,3AHJBDDDADDDL,27HDDD: MOV AH,02HINTRET21HDISPLENDPDISPPROCNEARPUSHBXPUSHCXPUSHDXPUSHAXMOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论