东南大学微机第四次实验报告

合集下载

最新东南大学微机实验报告

最新东南大学微机实验报告

东南大学《微机实验及课程设计》实验报告实验一指令与汇编语言基础实验二汇编语言程序设计姓名:柳佳男学号:08010424专业:自动化实验室:计算机硬件技术实验时间:2012年04月10日报告时间:2012年04月16日评定成绩:审阅教师:一. 实验目的与内容实验目的1、了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点。

2、掌握汇编语言程序指令编辑基本框架程序,完成宏汇编、连接操作,实现运行;3、熟练掌握动态调试程序TD/DEBUG常用命令或窗口功能,学会动态调试程序的基本方法。

4、利用框架程序检验8086/8088汇编语言(MASM/TASM)的各种指令性与指示性操作功能和语法,并了解它们与目标代码之间的关系;检验典型DOS/BIOS功能调用,实现简单的人机交互功能。

基本实验内容和要求 (重点:段存储结构和数据变量)(1)掌握进入全屏命令行方式、修改环境的两种方法(2)确定源程序的存放目录,构建个人实验环境;(3)建立、编辑汇编源程序,构建典型的汇编程序框架;(4)用汇编工具(MASM/TASM.EXE)汇编源程序产生OBJ目标文件;(5)用链接程序(LINK/TLINK.EXE)产生EXE可执行文件;(6)用调试工具软件(Debug.exe / TD.EXE)调试执行程序;1)观察CPU寄存器、存储器环境;2)单步、断点运行,观察中间结果;3)完成正常执行;4)修改中间运行环境(寄存器,存储器);5)直接编写程序片断,验证指令功能实验内容一:编辑(EDIT):基本的汇编语言格式:段,变量,过程;汇编(MASM):产生.LST文件;链接(LINK).MAP文件(调试观察源-目标关系)多模块程序,.LST,.MAP文件(调试观察源-目标关系)DOS/BIOS调用功能(I/O)调试验证INT 21H / INT 16HTASM/zi TLINK/v TD带符号(Symble) 调试(观察源-目标关系)实验内容二:1.输入字符串,作大小写变换,显示结果2.输入十进制数N(<=65535), 转换成十六进制数,显示在屏幕上(有检错功能)3.改写成子程序结构4.N<=12时用递归算法实现阶乘;5.采用双模块结构;采用软件中断调用(INT 80H,用DEBUG跟踪调试)二. 基本实验原理运行汇编程序必备的软件环境:DOS操作系统;汇编软件系统。

微机实验报告

微机实验报告

微机实验报告第⼀次实验1.写出完成下列功能的指令序列(1)传送20H到AL寄存器MOV AL , 20H(2)将(AL)*2 MOV AL , 02H MUL AL (3)传送25H到BL寄存器MOV BL , 25H (4)(AL)*BL MUL BL问最后结果(AX)=?AX=0940H2.分别写出完成下列指令要求的指令(1)将BX的低4位清零AND BX , F0H(2)将AX的⾼4位置1 OR AX , F0H(3)将DX的低4位取反;XOR DX , 0FH(4)将CX的中间⼋位清零AND CX , 0FF0H(5)将AX中与BX中的对应位不相同的位均置1 XOR AX , BX3.上机运⾏下⾯指令序列,分析运⾏后(AX)=?mov cl , 8sar ax ,cldec axmov cx ,8mul cxax=210.9h4. 4.设DS=当前段地址,BX=0300H,SI=0002H,请⽤DEBUG的命令将存储器偏移地址300-304H连续单元装⼊0AH0BH0CH0DH0EH。

在DEBUG状态下送⼊下⾯的程序,并⽤单步执⾏的⽅法,分析每条指令原源地址的形成过程?当数据传送完毕时,AX中的内容是什么?8.编程:求两个数的平均值。

这两个数分别放在X单元和Y单元中,⽽平均值放在Z单元中。

即Z=(X+Y)/2 data segmentx db 2y db 6z db ?data endscode segmentassume cs:code, ds;datastart:mov ax, datamov ds,axmov al, xmov ah,0add al,ymov bl,2div blint 21hcode endsend start9.输⼊下⾯源程序,并对程序进⾏会变,连接,调式并说明程序的功能。

data segment number dw 0168hdata endscode segmentassume cs;code, ds: dataorg 0100hstart:mov ax, datamov ds, axmov dx,0mov bx, 0001hmov di, 8000hmov si, 0mov ax, numbermov cx, 16next;test ax, bxjz continueor dx, diinc sicontinue:ror di, 1mov ah,4chint 21hcode endsend start1.编写程序: 求1+2+3+…..+100的和data segment number db 01hdata endscode segmentassume cs:code , ds:datastart:mov ax , datamov ds , axmov ax , datamov bx , numbermov ax , 0mov cx , 64hnext:add ax ,bxinc bxloop nextmov ah , 4chint 21hcode endsend start2.在内存中tab为⾸的地⽅存有1-9的平⽅值,从键盘输⼊⼀个数(1-9),将该数存⼊X单元,⽴⽅值存⼊XXX单元中data segmenttab db 0,1,4,9,16,25,36,49,64,81x db 10dup(?)xxx db 10dup(?)data endscode segmentassume cs:code ,ds: datastart:mov ax ,datamov ds , ax mov ax , datamov cx ,09hnext:mov ah , 1int 21hand ah ,0fhmov bx ,ahmov si , offset tabmov sp , offset xmov di , offset xxxmov dx , byte ptr[bx+si]mov al, blmul dxmov [bx+di] ,axmov [sp+bx] , bxmov ah , 4chint 21hcode endsend start第⼆次实验顺序程序设计从键盘输⼊两个1位⼗进制数,求这两个数的和,并将结果显⽰在屏幕上data segment infor1 db 'please input the first data (<10):$'infor2 db 0ah,0dh,'please input the second data (<10):$'infor3 db 0ah,0dh,'the result is:$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset infor1mov ah,9int 21hmov ah,1int 21hand al,0fhmov ah,00000000000000000000mov bl,almov dx,offset infor2int 21hmov ah,1int 21hand ax,000fhadd al,blaaaor ax,3030hpush axmov dx,offset infor3 mov ah,9int 21hpop axmov dl,ahpush axmov ah,2int 21hpop axmov dl,almov ah,2int 21hmov ah,4chint 21hcode endsend startresult db 0ah,0dh,'cube result is :$' data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset numbermov ah,9int 21hmov ah,1int 21hand ax,000fhmov bx,axmul blmul blmov cl,64hdiv clor al,30hpush axmov dx,offset resultmov ah,9int 21hpop axmov dl,alpush axmov ah,2int 21hpop axmov cl,0ahmov al,ahmov ah,0div clor ax,3030hpush axmov ah,2int 21hpop axmov dl,ahmov ah,2int 21hmov ah,4chint 21hcode endsend start分⽀程序设计1.某程序可从键盘接收命令(0-5),分别专项6个⼦程序,⼦程序⼊⼝地址分别为p0-p5,编制程序,⽤跳转表实现分⽀结构程序设计,记录实验结果data segmentmessage db 'please input key (0-5):$'crmessage db 0ah,0dh,'$'errormessage db 'you hit error key !',0ah,0dhdb 'please try again(0-5):$'message0 db 'you hit the key 0',0ah,0dh,'$'message1 db 'you hit the key 1',0ah,0dh,'$'message2 db 'you hit the key 2',0ah,0dh,'$'message3 db 'you hit the key 3',0ah,0dh,'$'message4 db 'you hit the key 4',0ah,0dh,'$'message5 db 'you hit the key 5',0ah,0dh,'$'code segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov ah,9lea dx,messageint 21htryagain:mov ah,1int 21hmov bl,almov ah,9mov dx,offset crmessage int 21hcmp bl,'0'jz key0cmp bl,'1'jz key1cmp bl,'2'jz key2cmp bl,'3'jz key3cmp bl,'4'jz key4cmp bl,'5'jz key5error:mov ah,9mov dx,offset errormessage int 21hjmp tryagainkey0:lea dx,message0mov ah,9int 21hjmp exitkey1:lea dx,message1 mov ah,9int 21hjmp exitkey2:lea dx,message2 mov ah,9int 21hjmp exitkey3:lea dx,message3 mov ah,9int 21hjmp exitkey4:lea dx,message4 mov ah,9int 21hjmp exitkey5:lea dx,message5 mov ah,9int 21hexit:mov ah,4chint 21hcode endsend start第三次实验循环程序设计1.从⾃然数1开始累加,直到累加和⼤于1000为⽌,统计被累加的⾃然数的个数,并把统计的个数送⼊N单元,把累加和送⼊SUM单元。

东南大学微机实验报告3、4定时中断流水灯

东南大学微机实验报告3、4定时中断流水灯

东南大学《微机实验及课程设计》实验报告实验三定时-中断实验:模拟流水灯姓名:学号:专业:自动化类实验室:金智楼416实验时间:2020年4月29日报告时间:2020年5月1日评定成绩:审阅教师:实验三定时-中断实验:模拟流水灯一. 实验目的与内容1.实验目的:1)掌握 PC 机中断处理系统的基本原理;2)学会编写中断服务程序。

3)掌握计数器/定时器 8253/8254 的基本工作原理和编程应用方法;4)了解掌握 8253(8254)的计数器/定时器典型应用方法。

2.实验内容:1. 查阅实验指导书 P60,了解微机主板上的 8259 IRQ0 是留给时钟的中断,类型号是 08H;2. 在提供的例程 int.asm 基础上编写利用 IRQ0 的定时中断程序(即修改对应的中断服务程序),每次中断在屏幕上输出一行字;3. 查阅课本 P273 例程,了解主机板上 8253 端口号和通道 0 对应的时钟,修改 8253 初始化程序,使得通道 0 输出时钟为55ms;4. 修改之前的程序,使其功能为:每 18 次中断(对应约1s)在屏幕上输出一行字;5. 根据提供的画图程序,模拟单色流水灯,按每秒一个灯向着单方向流动;6. 双向流水灯、键控(方向/加减速)流水灯。

二. 基本实验原理中断:PC 机用户可使用的硬件中断只有可屏蔽中断,由 8259 中断控制器管理。

中断控制器用于接收外部中断请求信号,经过优先级判别等处理后向 CPU 发出可屏蔽中断请求。

IBMPC、PC/XT 机内有一片 8259 中断控制器对外可以提供 8 个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8 个中断源的中断请求信号线 IRQ0~IRQ7 在主机的 62 线 ISA 总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。

第四次实验东南大学-控制技术与系统实验报告

第四次实验东南大学-控制技术与系统实验报告

东南大学控制技术与系统可编程控制器实验姓名:张子龙组员:焦越学号:22013126 指导教师:朱利丰实验日期:2016年11月30日实验四、定时器、计数器指令实验一、实验目的1、掌握定时器、计数器指令的格式和编程方法。

2、掌握定时器、内部时序脉冲参数的设置。

3、掌握计数器、定时器的功能及定时技巧。

二、实验器材1、可编程序控制器试验箱2、计算机3、编程电缆4、连接导线三、实验原理和电路1、定时器指令FXOS系列的PLC有定时器56个,编号T0-T55。

定时器的时标为100ms(即输入脉冲周期为100ms),每个定时器的定时范围可从0.1-3276.7(因为字长16位),定时器每条指令占用3字长。

当继电器M8028置1时,定时器T0-T31认为100ms时标,而T32-T55时标变为10ms。

定时器的指令格式如下图1-29当X0合上,T0开始定时,当定时到T50时(5s),T0触发点输出为1,T0于Y0接通,Y0有输出。

2、计数器指令FXOS系列的PLC有计数器16个,其中普通型C0-C13共14个,带掉保护型的为C14、C15两个。

每个计数器为16位,所以计数器范围为1-32767。

该指令占3步。

四、实验内容及步骤1、定时器指令实验1)实验步骤一①X0接试验箱模拟开关0#②输入执行上面程序③观察结果输出。

当合上X0时,Y0每隔1s闪烁一次,说明T1、T0的定时器时基脉冲为100ms,计10次。

2)实验步骤二①输入执行上面程序②观察结果输出。

当X0合上,Y0每隔0.1s闪烁一次。

当X0 断开,Y0每隔1s闪烁一次。

说明M8028控制T32-T55的定时时基脉冲。

2、计数器指令实验1)如图1-312)实验步骤三①X0、X1接试验箱模拟开关0#、1#②输入执行上面程序③观察结果输出。

当X1为0时,X0合上10次,Y0有输出,再按下X1一次,Y0无输出,再X0合上10次,Y0有输出。

3、定时器\计数器综合试验1)程序如下图所示X0为启动信号,Y0为1s脉冲发生器,X1为C0的复位信号。

第四次实验东南大学控制专业技术与系统实验报告

第四次实验东南大学控制专业技术与系统实验报告
定时器的时标为100ms(即输入脉冲周期为100ms),每个定时器的定时范围可从0.1-3276.7(因为字长16位),定时器每条指令占用3字长。
当继电器M8028置1时,定时器T0-T31认为100ms时标,而T32-T55时标变为10ms。
定时器的指令格式如下图1-29
当X0合上,T0开始定时,当定时到T50时(5s),T0触发点输出为1,T0于Y0接通,Y0有输出。
第四次实验东南大学-控制技术与系统实验报告
———————————————————————————————— 作者:
———————————————————————————————— 日期:
东南大学
控制技术与系统
可编程控制器实验
姓名:张子龙组员:焦越
学号:指导教师:朱利丰
实验日期:2016年11月30日
1、掌握定时器指令的格式、功能和编程方法。
2、掌握计数器指令的格式、功能和编程方法。
3、熟悉实验步骤原理,内容及步骤。
第二章应用试验
实验一、交通信号灯自动控制实验
一、实验目的Leabharlann 1、掌握实用PLC控制十字路口交通灯的程序设计方法
2、进一步熟悉PLC指令的使用
二、实验器材
1、可编程序控制器试验箱
2、交通信号灯演示装置
2)实验步骤二
输入执行上面程序
观察结果输出。
当X0合上,Y0每隔0.1s闪烁一次。当X0断开,Y0每隔1s闪烁一次。说明M8028控制T32-T55的定时时基脉冲。
2、计数器指令实验
1)如图1-31
2)实验步骤三
X0、X1接试验箱模拟开关0#、1#
输入执行上面程序
观察结果输出。
当X1为0时,X0合上10次,Y0有输出,再按下X1一次,Y0无输出,再X0合上10次,Y0有输出。

东南大学计算机与网络第四次实验祥解

东南大学计算机与网络第四次实验祥解

东南大学自动化学院实验报告课程名称:信息通信网络概论第4次实验实验名称:设计协议院(系):自动化专业:自动化姓名:学号:实验室:金智楼实验组别:同组人员:实验时间:2013 年12 月23日评定成绩:审阅教师:目录一.实验目的和要求 (3)二.实验原理 (3)三.实验方案与实验步骤 (4)四.实验设备与器材配置 (5)五.实验记录 (5)六.实验总结 (9)七.思考题或讨论题 (9)一.实验目的和要求目的:1.设计简单的应用层协议,2.开发基于TCP/IP或UDP/IP的网络通信程序,实现数据传送和文件传输。

要求:1.正确理解应用层协议的概念;2.更深入了解客户/服务器模式的网络程序设计。

二.实验原理1. 应用层协议应用层协议的定义包括如下内容:(1)交换的报文类型,如请求报文和响应报文;(2)各种报文类型的语法,如报文中的各个字段公共详细描述;(3)字段的语义,即包含在字段中信息的含义;(4)进程何时、如何发送报文及对报文进行响应。

有些应用层协议是由RFC文档定义的,因此它们位于公共领域。

例如,web的应用层的协议HTTP(超文本传输协议,RFC 2616)就作为一个RFC供大家使用。

如果浏览器开发者遵从HTTP RFC规则,所开发出的浏览器就能访问任何遵从该文档标准的web,服务器并获取相应的web 页面。

还有很多别的应用层协议是专用的.不能随意应用于公共领域。

例如,很多现有的P2P 文件共享系统使用的是专用应用层协议。

目的,应用层协议主要有以下几种。

2)SOCKET编程服务器要创建一个用于侦听的套接字,为该套接字分配地址之后,调用listen()函数使它处于侦听状态;客户机在创建套接字完毕后,为套接字分配地址,然后调用connect()函数,请求与服务器套接字连接;服务器套接字在收到客户机的连接请示后,调用accept()函数,该函数创建一个用于连接的套接字。

应用该套接字和客户机上的连接套接字,用户就可以在服务器和客户机之间进行数据传输了。

第四次微机原理与接口技术实验报告

第四次微机原理与接口技术实验报告

微机原理与接口技术第四次实验报告目录第一次实验:实验6 8254定时/计数器实验 (1)第二次实验:实验3 六位数码管显示实验 (4)实验5 小键盘按键识别实验 (8)实验2 拨动开关和 LED 显示实验 (15)实验8 8255方式1输出 (17)实验13 继电器实验 (20)第三次实验: 实验10 8位D/A转换实验 (23)第一次实验:实验68254 定时/计数器实验一实验目的熟悉 8254 在系统中的电路接法,掌握 8254 的工作方式及应用编程。

二实验内容使用 8254 两个计数器级连,采用定时方式工作,周期性的点亮及熄灭发光二极管各 0.5秒。

三实验原理(1)接线图:(2)流程图四程序清单及注释.Model small.386DATA SEGMENTD1 DB 10 DUP('4')D2 DB 20 DUP('3') DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA BEG:MOV AX,DATAMOV DS,AXMOV AL,37HMOV DX,203HOUT DX,ALMOV AX,1000;1000控制LED闪烁频率MOV DX,200HOUT DX,ALMOV AL,AHOUT DX,ALMOV AL,77HMOV DX,203HOUT DX,ALMOV AX,1000;1000控制LED闪烁频率MOV DX,201HOUT DX,ALMOV AL,AHOUT DX,ALCODE ENDSEND BEG四问题及体会(1)初次使用TPC-386EX汇编,对软件的使用不够熟悉,对输出输入接口的确定还有些模糊,需要继续尝试加以提高;(2)TPC-386EX 环境与下位机的匹配是一个常见的错误,实验中多次显示“请先传送文件”提示,后来发现是两者间接口连接出现问题,以后实验中会注意。

第二次实验:实验3 六位数码管显示实验一实验目的了解共阴级数码管显示数字的原理,掌握六位共阴级数码管动态显示的控制方法。

东南大学微机实验4_1

东南大学微机实验4_1

微机实验及课程设计
7 东南大学
7
选作实验
3.双色点阵发光二 极管显示控制 借 助 简 单 I/O 输 出 锁 存功能, 存功能 , 实现双色 点阵显示控制。 8*8点阵显示控制。 同时了解双色点阵 LED显示器的基本原 LED显示器的基本原 理 , 掌握PC 机控制 掌握 PC机控制 PC 双色点阵LED LED显示程 双色点阵LED显示程 序的设计方法。 序的设计方法。
自端口2A0H输入ASCII码
保存输入ASCII码至DL 是ESC吗? Y N 从端口2A8H 输出其ASC码 N 有键按下吗? Y 结 束 结 束 显示ASCII码对应的字符
微机实验及课程设计
6 东南大学
6
选作实验
用基本实验( 中输出锁存电路, 成流水灯( 1. 用基本实验(1)中输出锁存电路, L0-L7成流水灯(可用 点阵列选替换),流水间隔时间由软件产生; ),流水间隔时间由软件产生 8*8点阵列选替换),流水间隔时间由软件产生; 流水方向 由键盘在线控制, 随时可切换; 由键盘在线控制 , 随时可切换 ; 流水间隔时间也可键盘控 也可利用8段数码管构成递减或递增计数显示。 制; 也可利用8段数码管构成递减或递增计数显示。 用基本实验( 中输入电路,监测逻辑电平开关 逻辑电平开关K0-K7变 2. 用基本实验(2)中输入电路,监测逻辑电平开关 变 一旦发生变化, 在显示器上显示二进制数状态, 化, 一旦发生变化 在显示器上显示二进制数状态 当开关 状态=55H时在控制台发出 声快速鸣叫 时在控制台发出5声快速鸣叫 状态 时在控制台发出 声快速鸣叫(BEL), 开关状态 =0AAH时发出 声缓慢鸣叫 时发出3声缓慢鸣叫 控制码BEL 时发出 声缓慢鸣叫(BEL)。 (ASCII 控制码 BEL 为 。 (ASCII控制码 BEL为 07H, 控制台输出,主机内部喇叭发出警告声) 07H, 控制台输出,主机内部喇叭发出警告声),实验中 注意输入处理消除颤抖方法。 注意输入处理消除颤抖方法。 观察IN/OUT 指令对应的总线周期波形( 双踪显示, IN/OUT指令对应的总线周期波形 3. 观察 IN/OUT 指令对应的总线周期波形 ( 双踪显示 , 以片选 IORD/IOWR为参考 观察A 为参考, ,D7 ),记录波形 记录波形. 或IORD/IOWR为参考,观察A9-A0,D7-D0等),记录波形.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东南大学《微机实验及课程设计》实验报告实验四双列点阵发光二极管显示实验姓名:董元学号:22011207专业:测控技术与仪器实验室:计算机硬件技术实验时间:2013年05月15 日报告时间:2013年05月18日评定成绩:审阅教师:一. 实验目的与内容(概述)实验目的:1)进一步掌握TPC实验装置的基本原理和组成结构;2)了解双色点阵LED显示器的基本原理3)掌握PC机控制双色点阵LED显示程序的设计方法实验内容:4-1、在双色点阵发光二极管上显示一个黄色或红色的“年”字。

4-2、在双色点阵发光二极管上显示你的姓的汉字或拼音的第一个字母。

要求该字符红色和黄色相间。

要求:1、正确设置退出条件:可以按任意键退出,或者显示一定的次数退出2、注意尽量清晰地显示字符,消除重影问题4-3、利用双色点阵发光二极管任意设计一款霓虹灯动态图案,要求二极管阵列可以间或发两种颜色的光,并能看清动态变换的效果。

二. 基本实验原理(或基本原理)点阵LED显示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜色的发光二极管。

当微机输出的控制信号使得点阵中有些LED 发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。

车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。

实验仪上设有一个共阳极8×8点阵的红黄两色LED显示器,其点阵结构如图所示。

该点阵对外引出24条线,其中8条行线,8条红色列线,8条黄色列线。

若使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。

1、硬件连接:(1)行代码、红色列代码、黄色列代码各用一片74LS273锁存。

(2)行代码输出的数据通过行驱动器7407加至点阵的8条行线上,(3)红和黄列代码的输出数据通过驱动器DS75452反相后分别加至红和黄的列线上。

(4)行锁存器片选信号为CS1,红色列锁存器片选信号为CS2,黄色列锁存器片选信号为CS3。

2、流程图:3、程序简述:(1)红色年字显示ioport equ 0b800h-0280hproth equ ioport+280hprotlr equ ioport+288hprotly equ ioport+290hDATA SEGMENTMESS DB 'Strike any key,return to DOS!',0AH,0DH,'$'min1 DB 00h,01h,02h,03h,04h,05h,06h,07hcount db 0BUFF DB 44h,54h,54h,7fh,54h,0dch,44h,24hDATA ENDS;----------------------------------------------------------- CODE SEGMENTASSUME CS:CODE,DS:DATA;------------------------------------------------------------START: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09INT 21H ;显示提示信息;------------------------------------------------------------ agn: mov cx,80hd2: mov ah,01hpush cxmov cx,0008hmov si,offset min1next: mov al,[si]mov bx,offset buffxlat ;得到第一行码mov dx,prothout dx,almov al,ahmov dx,protlrout dx,al ;显示第一行红mov al,0out dx,alshl ah,01inc sipush cxmov cx,0ffh;ffhdelay2: loop delay2 ;延时pop cxloop nextpop cxcall delayloop d2mov al,00mov dx,protlrout dx,almov ah,01 ;有无键按下int 16hjnz a2agn1: mov cx,80h ;agn1为显示黄色d1: mov si,offset min1mov ah,01push cxmov cx,0008hnext1: mov al,[si]mov bx,offset buffxlatmov dx,prothout dx,almov al,ahmov dx,protlyout dx,almov al,0out dx,alshl ah,01inc sipush cxmov cx,0ffh;ffhdelay1: loop delay1mov cx,0ffh;ffhdelay3: loop delay3pop cxloop next1pop cxcall delayloop d1mov al,00mov dx,protlyout dx,almov ah,01int 16hjnz a2jmp agn ;黄色红色交替显示;---------------------------------------------------------------- DELAY PROC NEAR ;延迟子程序push cxmov cx,0ffh;ffhccc: loop cccpop cxretDELAY ENDP;---------------------------------------------------------------------a2: MOV AH,4CH ;返回INT 21HCODE ENDSEND START(2)显示姓名首字母Dprot equ 0b800h-280hproth equ prot+280h ;???protlr equ prot+288h ;????protly equ prot+290h ;????DATA SEGMENTMESS DB 'Strike any key,return to DOS!',0AH,0DH,'$'min1 DB 00h,01h,02h,03h,04h,05h,06h,07hcount db 0BUFF DB 44h,54h,54h,7fh,54h,0dch,44h,24hDATA ENDS;----------------------------------------------------------- CODE SEGMENTASSUME CS:CODE,DS:DATA;------------------------------------------------------------ START: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09INT 21H ;??????;------------------------------------------------------------ mov cx, 0ffffhMOV AL,01HMOV DX,prothOUT DX,ALbegin:MOV AL,00HMOV DX,prothOUT DX,ALMOV AL,01HMOV DX,protlrOUT DX,ALMOV CX, 0ffffhDELAY1: LOOP DELAY1MOV AL,3cHMOV DX,prothOUT DX,ALMOV AL,02HMOV DX,protlyOUT DX,ALMOV CX, 0ffffhDELAY2: LOOP DELAY2MOV AL,42HMOV DX,prothOUT DX,ALMOV AL,04HMOV DX,protlrOUT DX,ALMOV CX, 0ffffhDELAY3: LOOP DELAY3MOV AL,81HMOV DX,prothOUT DX,ALMOV AL,08HMOV DX,protlyOUT DX,ALMOV CX, 0ffffhDELAY4: LOOP DELAY4MOV AL,81HMOV DX,prothOUT DX,ALMOV AL,10HMOV DX,protlrOUT DX,ALMOV CX, 0ffffhDELAY5: LOOP DELAY5MOV AL,81HMOV DX,prothOUT DX,ALMOV AL,20HMOV DX,protlyOUT DX,ALMOV CX, 0ffffhDELAY6: LOOP DELAY6MOV AL,0ffHMOV DX,prothOUT DX,ALMOV AL,40HMOV DX,protlrOUT DX,ALMOV CX,0ffffhDELAY7: LOOP DELAY7MOV AL,00HMOV DX,prothOUT DX,ALMOV AL,80HMOV DX,protlyOUT DX,ALMOV CX, 0ffffhDELAY8: LOOP DELAY8CALL BEGINmov ah,01 int 16hjnz a2a2: MOV AH,4CH ;??INT 21HCODE ENDSEND START;---------------------------------------------------------- (3)动态显示红黄双色“元”字prot equ 0b800h-280hproth equ prot+280h ;选择列protlr equ prot+288h ;红色地址protly equ prot+290h ;黄色地址DATA SEGMENTMESS DB 'Strike any key,return to DOS!',0AH,0DH,'$'min1 DB 00h,01h,02h,03h,04h,05h,06h,07hcount db 0BUFF DB 16h,12h,5eh,50h,5ch,52h,12h,00hDATA ENDS;----------------------------------------------------------- CODE SEGMENTASSUME CS:CODE,DS:DATA;------------------------------------------------------------ START: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09INT 21H ;显示提示信息;------------------------------------------------------------ agn: mov cx,80hd2: mov ah,01hpush cxmov cx,0008hmov si,offset min1next: mov al,[si] ;把min的内容放入al mov bx,offset buffxlat ;得到第一行码mov dx,proth ;选择列out dx,almov al,ah ;列的内容mov dx,protlrout dx,al ;显示第一行红shl ah,01inc sipush cxmov cx,0ffffhdelay2: loop delay2 ;延时 pop cxloop nextpop cxcall delayloop d2mov al,00mov dx,protlrout dx,almov ah,01 ;有无键按下int 16hjnz a2agn1: mov cx,80h ;agn1为显示黄色d1: mov si,offset min1mov ah,01push cxmov cx,0008hnext1: mov al,[si]mov bx,offset buffxlatmov dx,prothout dx,almov al,ahmov dx,protlyout dx,alshl ah,01inc sipush cxmov cx,0ffffhdelay1: loop delay1mov cx,0ffffhdelay3: loop delay3pop cxloop next1pop cxcall delayloop d1mov al,00mov dx,protlyout dx,almov ah,01int 16hjnz a2jmp agn ;黄色红色交替显示;----------------------------------------------------------------DELAY PROC NEAR ;延迟子程序push cxmov cx,0ffffhccc: loop cccpop cxretDELAY ENDP;---------------------------------------------------------------------a2: MOV AH,4CH ;返回INT 21HCODE ENDSEND START;----------------------------------------------------------三. 方案实现与测试(或调试)实验步骤:(1) 动态调试程序DEBUG/TD 的直接I/O 操作方法(Input)。

相关文档
最新文档