微机原理上机实验报告

合集下载

微机原理汇编语言上机实验报告

微机原理汇编语言上机实验报告

微机原理汇编语言上机实验报告-CAL-FENGHAI.-(YICAI)-Company One1第三次上机实验报告一.实验目的1.熟练掌握汇编语言程序设计的方法及上机步骤。

2.掌握算术运算指令的应用。

3.掌握子程序的设计方法。

4.掌握DOS功能的调用方法。

二.实验仪器586微机一台三.实验内容有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。

编程要求及提示:[1] 参加排序的数据及个数由学生自己定义。

[2] 要将排序前的数组和排序后的数组在屏幕上显示出来。

四.给出实验内容对应的源程序及流程N = 50STACK SEGMENT STACK 'STACK'DW 100H DUP()TOP LABEL WORDSTACK ENDSDATA SEGMENTDATABUF DW NDB N DUP()ORIGINAL DB 13,10,13,10,'THE ORIGINAL DATA:$'ORDERED DB 13,10,10,13,'THE ORDERED DATA:$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SP,TOP;随机数据MOV CX,DATABUFLEA SI,DATABUF+2MOV BL,12MOV AL,14L:MOV [SI],ALINC SIADD AL,BLLOOP LLEA DX ,ORIGINALMOV AH,9INT 21HCALL DISPAL;下面给数据排序程序MOV CX,DATABUFDEC CXLEA SI,DATABUF+2ADD SI,CX; SI指向数据区末地址L1:PUSH CXPUSH SIL2:MOV AL,[SI]CMP AL,[SI-1]JBE NOXCHGXCHG AL,[SI-1]MOV [SI],ALNOXCHG:DEC SILOOP L2POP SIPOP CXLOOP L1LEA DX,ORDEREDMOV AH,9INT 21HCALL DISPALEXITPROC:MOV AH,4CH;结束程序MOV AH,1INT 21HDISPAL PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH DILEA DI,DATABUF+2MOV CX,NDISPAL2:MOV AL,[DI]SHR AL,1SHR AL,1SHR AL,1SHR AL,1CALL CHANG ;------------------------------------------------MOV AH,2MOV DL,ALINT 21HMOV AL,[DI]AND AL,0FHCALL CHANG;-------------------------------------------------MOV AH,2MOV DL,ALINT 21HMOV AH,2MOV DL,20HINT 21H ;为了让结果看得清楚,让显示的数用空格空开 INC DILOOP DISPAL2POP DIPOP DXPOP CXPOP BXPOP AXRETDISPAL ENDPCHANG PROC NEARCMP AL,10JNGE CHANG1ADD AL,7CHANG1:ADD AL,30HRETCHANG ENDPCODE ENDSEND START五.实验心得在实验过程中出现了类型不匹配的错误,归根结底还是对知识的掌握熟悉度不够;再者由于初次上机编写一个完整的汇编程序难免会出现这样或那样的问题,但在老师和同学的帮助下最终完成了这个程序的编写运行调试,收获颇丰。

微机原理实验报告参考

微机原理实验报告参考

实验一汇编语言程序上机过程练习1.实验目的掌握汇编语言程序上机的步骤,掌握汇编语言程序编辑、汇编、连接、运行、调试的方法。

2.实验内容:输入老师提供的汇编语言源程序,完成汇编、连接、运行、调试过程。

3.实验步骤:(1)、上机环境的准备在资源管理器中,在d盘上新建自己的文件夹zhangsan(备注:请把zhangsan替换成你自己的文件夹名,用英文字母命名,并且名字长度不超过8个字符)。

把机器上的masm.exe和link.exe等文件拷到该文件夹内。

(2)、上机过程①切换工作路径:打开命令提示符窗口、转到d盘、切换我的文件夹为当前路径②把老师提供的源程序用记事本(或者EDIT)输入到机器内,保存为扩展名为.asm的文本文件。

③用汇编程序MASM对源程序进行汇编,如果源程序有错误则修改,直到汇编通过,生成扩展名为OBJ的二进制的目标文件。

④用连接程序LINK对上面生成的二进制目标文件进行连接,有错误则修改源程序,重新进行汇编、连接,直到连接成功生成扩展名为EXE的可执行文件。

⑤在DOS提示符下运行可执行文件。

屏幕上显示“Hello Word!”⑥用DEBUG对可执行文件进行调试。

4.附源程序:DATA SEGMENTMSG DB 'HELLO WORLD!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,MSGMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验二汇编语言程序设计练习1.实验目的(1)掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图。

说明流程图中各功能的含义和表示法。

分配工作单元和存储空间。

根据程序算法流程选择合适的指令编制汇编语言源程序。

(2)掌握顺序程序的设计基本方法和技巧。

(3)掌握分支程序设计的方法,重点掌握各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧。

新版西电微机原理第二次上机实验报告-新版-精选.pdf

新版西电微机原理第二次上机实验报告-新版-精选.pdf

西电微机原理第二次上机实验报告学号:姓名:一、实验目的1.熟练掌握汇编语言程序设计的方法及上机步骤。

2.掌握算术运算中,十进制数调整指令的应用。

3.掌握子程序的设计方法。

4.掌握DOS功能的调用方法。

二、实验仪器586微机 1台三、实验内容编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。

编程要求与提示:[1] 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。

[2] 和以压缩十进制数的形式存入SUM以下单元。

[3] 将和送到屏幕显示部分功能的实现采用子程序的形式。

[4] 实验步骤如下:a. 用全屏幕编辑软件建立源程序。

b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。

c. 用link.exe连接程序对目标程序进行连接形成可执行文件。

d. 用DEBUG对连接通过的可执行程序进行调试。

四、实验内容对应的源程序及流程源程序如下:STACK SEGMENT STACKDB 10H DUP(00)STACK ENDSDATA SEGMENTADD1 DB 12H,67H,85H,32HADD2 DB 21H,73H,65H,43HSUM DB 4H DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX, DATAMOV DS, AXMOV AX, DATAMOV ES, AXMOV AX,STACKMOV SS,AXLEA SI, ADD1[3]LEA BX, ADD2[3]LEA DI,SUM[3]MOV CX,4CLCL1:MOV AL,[SI]ADC AL,[BX]DAAMOV [DI],ALDEC SIDEC BXDEC DILOOP L1CALL DISPAL; ------------EXITPROC:MOV AH,4CH ;结束程序MOV AH,1INT 21H; ------------DISPAL PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH DILEA DI,SUMMOV CX,4DISPAL2:MOV AL,[DI]SHR AL,1SHR AL,1SHR AL,1SHR AL,1MOV AH,2MOV DL,ALADD DL,30HINT 21HMOV AL,[DI]AND AL,0FHMOV AH,2MOV DL,ALADD DL,30HINT 21HINC DILOOP DISPAL2POP DIPOP DXPOP CXPOP BXPOP AXRETDISPAL ENDPCODE ENDSEND START运行结果如下:五、问题讨论1.在以十进制数形式参加运算的程序设计中,应注意那些问题。

微机原理上机个人总结

微机原理上机个人总结

微机原理上机个人总结
在微机原理的上机实验中,我个人的总结如下:
1. 实验目的:通过实验了解微机原理的基本概念、组成结构和工作原理,掌握微机系统的组装与调试技术。

2. 实验内容:
- 组装微型计算机系统:了解计算机主机、外围设备的组成,学会安装和连接各种硬件设备。

- 硬件配置与调试:学会设置硬盘、光驱、显卡、内存等硬件资源,在 BIOS 中进行相应设置调整。

- 操作系统安装:了解不同操作系统的安装步骤和要求,并按照提示完成操作系统的安装。

- 系统调试与功能测试:学会使用调试工具对硬件进行测试和调试,确保计算机系统正常工作。

3. 实验收获:
- 掌握了微机系统组装与调试的基本技术,了解了硬件设备的安装、连接方法以及操作系统的安装过程。

- 熟悉了 BIOS 设置,包括启动顺序设置、硬件资源配置等。

- 学会了使用调试工具对计算机硬件进行故障排除和性能测试。

- 加深了对微机原理的理解和认识,对计算机硬件与操作系统之间的关系有了更深入的了解。

4. 实验心得:
- 实验过程中需要仔细阅读实验指导书,按照步骤进行操作,保证安装和连接的正确性。

- 遇到问题要及时和助教、同学讨论,互相帮助解决疑惑和困难。

- 实验后要及时总结和整理实验过程中遇到的问题和解决方法,加深对微机原理的理解。

通过这次上机实验,我对微机原理有了更深入的了解,也掌握了一些基本的硬件配置和调试技术,对于今后的学习和工作都会有很大的帮助。

西电微机原理与系统设计上机报告

西电微机原理与系统设计上机报告

微机原理与系统设计上机报告学号:*******姓名:**指导老师:**时间:2016年11月西安电子科技大学内容一 Debug程序的使用一、实验目的1. 学习使用DEBUG调试命令。

2. 学习用DEBUG调试简单程序。

3. 通过程序验证码制及其对标志位的影响。

4. 通过调试熟悉和掌握各寄存器的作用与特点。

二、实验内容用DEBUG调试简单程序。

三、实验仪器微机一台四、实验步骤1.由DOS进入DEBUG调试环境。

(1)DEBUG将调试程序装入内存注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG的状态提示符,表示可以接受调试子命令了。

(2)-R 显示CPU中各寄存器当前初始内容,请记录下列各项:AX=0000 BX=0000 CX=0000 DX=0000 BP=0000 SI=0000 DI=0000 DS=13E0 ES=13E0 SS=13E0 SP=FFEE CS=13E0 IP=0100 FLAG寄存器中的8个标志位状态值是:OF DF IF SF ZF AF PF CFNV UP EI PL NZ NA PO NC DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。

标志位含义‘1’的对应符号‘0’的对应符号OF溢出OV有NV无DF方向DN递减UP递增IF中断EI允许DI禁止SF符号NG负PL正ZF全零ZR零NZ非零AF辅助进位AC有NA无PF奇偶性PE偶PO奇CF进位CY有NC无2.用DEBUG调试简单程序例1 -A CS:0106MOV AX,1234MOV BX,2345MOV CX,0ADD AX,BXMOV CX,AXINT 20运行程序(注:执行程序时IP应指向要执行的指令,需要修改该寄存器-RIP当前值输入需要值该处为0106,当然也可以在T或G命令中指出程序起始地址)-R 显示各寄存器当前内容及首条指令-T 3 跟踪执行三条赋值传送指令,观察寄存器及标志位-T 2跟踪执行相加及送和数指令,观察寄存器及标志位-G 执行软件中断指令INT 20,机器将显示“程序正常终止”的信息,并显示“-”,表明仍处在DEBUG的调试控制状态下,注意未用T命令,因为我们不想进入到20H中断处理程序中去,P命令也可实现相同操作实验现象记录:观察与记录按照上述要求命令执行后,哪些寄存器和标志位发生了变化。

四川大学微机原理实验报告

四川大学微机原理实验报告

微机原理实验报告学院:专业班级:姓名学号实验一汇编语言编程基础1.3汇编语言程序上机操作和调试训练一.功能说明运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。

运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。

运用LINK.EXE文件进行连接,形成*.EXE文件。

仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。

运用DEBUG。

EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。

再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。

二.程序流程图三.程序代码修改后的程序代码如下:DATA SEGMENTA DB 9,6,8,7,5B DB 5C DB 5 DUP (0)N EQU 5DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXCLDLEA SI,ALEA DI,CMOV CX,NMOV AH,0LP1: LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2: MOV DL,[DI]ADD DL,30HMOV AH,2INT 21HINC DILOOP LP2MOV AH,4CHINT 21HCODE ENDSEND START四.实验感想和收获通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。

在这次试验中我也遇到了一些困难。

在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。

我这才想起来我的操作系统是64位的,和该软件版本不兼容。

微机上机实验报告

微机上机实验报告

微机上机实验报告摘要本次实验是关于微机上机操作的,通过本次实验,我们熟悉了微机的操作系统以及基本的指令。

首先,我们学习了DOS系统的基本操作,并实践了一些常用指令,如目录操作、文件操作以及格式化等。

接着,我们学习了Windows操作系统的基本操作,并运用它编辑文档、运行程序和调整系统设置。

最后,我们学习了基本的网站浏览和搜索技巧,以及如何下载和安装小型软件。

实验过程一、DOS系统操作1. 启动计算机并进入DOS系统按下计算机电源按钮后,经过自检、读取硬盘的一系列过程后,进入DOS系统。

此时会显示C:\>,表示DOS已启动。

2. DOS系统的常用指令1)查看目录内容dir:显示当前目录下的文件和子目录。

2)进入目录cd 目录名:进入指定的目录。

cd..:返回上一级目录。

3)创建目录md 文件夹名:在当前目录下创建一个新的目录。

4)删除目录rd 文件夹名:删除指定的目录。

5)复制文件copy 源文件名目标文件名:将源文件复制到目标文件。

6)移动文件move 源文件名目标文件名:将源文件移动到目标文件。

7)删除文件del 文件名:删除指定的文件。

8)格式化磁盘format 盘符:格式化指定的磁盘。

3. 实践操作在DOS中,我们创建了一个名为“test”的目录,并在其中创建了一些新文件。

接着,我们使用copy指令将“test”的内容复制到另一个目录中。

二、Windows系统操作1. Windows系统的常用操作1)查看计算机状态右键单击“我的电脑”图标,选择“属性”,可以查看计算机的基本信息,如操作系统版本、处理器类型、内存大小等。

2)打开“控制面板”在Windows系统中,我们可以使用“控制面板”来进行一些系统设置。

可以使用“开始”菜单中的“控制面板”或是在任意文件夹中输入“control”来打开“控制面板”。

3)编辑文档使用Windows系统自带的“记事本”程序可以轻松地编辑文档,还可以使用“字体”、“颜色”等功能对文本进行格式化设置。

微机原理上机报告

微机原理上机报告

《微机原理》上机实验报告1.比较AL,BL,CL中带符号数的大小,将最小的数放于AL中(用JG转换)。

1)流程图2)代码:data segmentd1 db 33hd2 db 23hd3 db 84hdata endscode segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov al,d1mov bl,d2mov cl,d3cmp bl,aljg bbbxchg bl,albbb: cmp cl,almov ah,4chint 21hcode endsend start2.比较buffer开始10个数中最大的偶数,将其存入AL中。

1)流程图2)代码:data segmentbruffer db 54h,48h,26h,46h,37h,49h,62h,55h,79h,16h data endscode segmentassume cs:code,ds:databegin:mov ax,datamov ds,axlea si,bruffermov cx,9mov al,[si]test al,01hjnz nextinc siag: test byte ptr[si],01h ; byte和ptr中间有空格 jnz nextcmp al,[si]jnc nextmov al,[si]next: inc sidec cxjnz agtest al,80h ;测试低位的正负值jz llmov ah,0ffh ;负值用补码表示ll: mov ah,0 ;为正值高位赋0mov ah,4chint 21hcode endsend begin3.将两个32位数相乘。

12)代码:data segmentd1 dd 12345678hd2 dd 87654321hd3 dw ?,?,?,? ;dw不能用“?”data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov bx,d3lea si,d1lea di,d2mov ax,[si]mul word ptr[di]mov [bx],axmov [bx+2],dxmov ax,[si+2]mul word ptr[di]add [bx+2],axadc [bx+4],dxadc word ptr[bx+6],00hmov ax,[si]mul word ptr[di+2]add [bx+2],axadc [bx+4],dxadc word ptr[bx+6],00hmov ax,[si+2]mul word ptr[di+2]add [bx+4],axadc [bx+6],dxadc word ptr[bx+8],00hmov ah,4chint 21hcode endsend start4.将(DX,AX)中32位无符号数左移四位,低四位用0填补,高四位存入CH的低四位中。

微机原理汇编语言的上机过程 实验报告

微机原理汇编语言的上机过程 实验报告

微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。

实验原理及操作步骤一、上机环境❖要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。

▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。

▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。

▪调试程序:DEBUG.EXE,用于调试可执行程序。

二、上机过程❖汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。

1.编辑源程序❖用文本编辑软件创建、编辑汇编源程序。

常用编辑工具有:、记事本、Word等。

❖无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。

2.汇编❖用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。

❖汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。

❖汇编过程如下:❖在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。

❖此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。

Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。

如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。

此时,需要进行修改,然后再进行汇编。

❖如此进行,直至汇编无错误,得到目标文件为止。

3.连接❖汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。

微机原理第四次上机实验报告_PB

微机原理第四次上机实验报告_PB

微机原理第四次上机实验报告学号:PB12203254 姓名:**潇上机时间:每周五晚上【一、实验目的和要求】:1,熟练掌握分支程序的两种结构形式:即相当于高级语言中的IF_THEN_ELSE语句和CASE语句。

2,熟练掌握使用条件转移指令实现分支程序设计的基本方法。

3,熟练掌握使用跳转表方法实现CASE结构的分支程序的设计。

【二、实验内容和过程】程序1:编写一个程序将一个数组中正数和负数分成两个数组并分别屏幕显示正数和负数的个数。

(一)程序的算法:1,首先是待处理数组的创建:我们通过21H号中断调用的0A号功能调用输入数字串,存于BUFF字符串区(设定为0A号调用的键入缓冲区),这里只负责将键入的以回车符(0DH)结尾的字符串读入数据段,不检查输入是否合法。

但是,我们通过输出提示告知用户键入的数字之间应该使用空格符(20H)来分隔。

实际上,我们在处理数字的时候就是以空格符(当然,还包括尾后输入的回车符)作为一个数字的字符串形式结束的标志(回车符还标识所有数字处理完毕)。

另一方面,我们计划给每个数字分配一个字的储存空间,故我们支持的数字范围为-32768~32767,这同样有键入提示字符串提示。

2,数字处理阶段:----预备处理阶段:初始化用来作为指针和数据暂存的寄存器(DI指向保存正数的数组NUM1,SI指向保存负数对应补码的数组NUM2,BX指向键入缓存区BUFF,数据暂存的CX清0,将要用来读数和处理的AX清0),计数器清零(L1,L2清0,他们分别记录存入NUM1和存入NUM2的元素的个数)。

----正式处理阶段:(a)开始:我们通过BX指向BUFF,通过MOV AL,[BI]j将一个字节读入AL。

(b)判断,是否为回车符(0DH):TURE,所有数字处理完毕,跳转到输出阶段;FALSE,继续执行接下来的指令。

(c)判断,是否为回车(20H):TURE,尚未开始下一个数字的输入,回跳(a)重新读入下一个字节的内容;FALSE,继续执行接下来的指令。

微机原理上机实验(一)实验报告数据传输传送实验

微机原理上机实验(一)实验报告数据传输传送实验

微机原理上机实验(一)实验报告主题:数据传送一、实验目的熟悉星研集成环境软件的使用方法。

熟悉Borland公司的TASM编译器熟悉8086汇编指令,能自己编写简单的程序,掌握数据传输的方法。

二、实验内容1、熟悉星研集成环境软件。

2、编写程序,实现数据段的传送、校验。

三、实验代码_STACK SEGMENT STACKDW 100 DUP()_STACK ENDSDATA SEGMENTDATA ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, DS:DATA, SS:_STACKMOV AX, DATA ;将数据段的地址存入AX寄存器。

AX=004DHMOV DS,AX ;对DS段寄存器赋值。

DS=004DHMOV ES,AX ;对ES段寄存器赋值。

ES=004DHNOP ;空指令MOV CX,100H ;把100H送到CX寄存器。

CX=0100HMOV SI,3000H ;把3000H送到SI寄存器。

SI=3000HMOV DI,6000H ;把6000H送到DI寄存器。

DI=6000HCALL Move ;调用Move子程序MOV CX,100H ;把100H送到CX寄存器。

CX=0100HMOV SI,3000H ;把3000H送到SI寄存器。

SI=3000HMOV DI,6000H ;把6000H送到DI寄存器。

DI=6000HCLD ;将DF标志位置0。

设置SI、DI为递增移动,DF=0 REPE CMPSB ;比较[SI]和[DI],CX减1,ZF=0或CX=0跳出;若ZF=0或CX=0不成立,则继续比较。

SI和DI持续递增1JNE ERROR ;若ZF=0,跳到ERROR子程序TRUE: JMP $ ;跳到目前地址ERROR: JMP $ ;跳到目前地址Move PROC NEAR ;Move子程序CLD ;将DF标志位置0。

设置SI、DI为递增移动。

微机原理上机报告

微机原理上机报告

实验一:EMU8086软件安装与使用一、实验目的通过本实验学习EMU8086软件的安装与使用。

二、实验设备PC微机一台,Emu8086仿真软件三、实验任务1. 安装Emu8086仿真软件。

2. 利用Emu8086仿真软件编程。

四、实验原理Emu8086仿真软件就是在Windows下的一种仿真软件,它可以仿真模拟8086的程序运行,并且可以直观地观察CPU寄存器的变化情况。

Emu8086 - Microprocessor Emulator结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。

这对刚开始学组合语言的人会是一个很有用的工具。

它会在模拟器中一步一步的编译程序码并执行,视觉化的工作环境让它更容易使用。

你可以在程序执行当中检视暂存器、旗标以及记忆体。

模拟器会在虚拟PC 中执行程序,这可以隔绝你的程序,避免它去存取实际硬体,像硬碟、记忆体,而在虚拟机器上执行组合程序,这可以让除错变得更加容易。

这个软件完全相容於Intel 的下一代处理器,包括了Pentium II、Pentium 4,而相信Pentium 5 也会继续支援8086 的。

这种现象让8086 程序码的可携性相当高,它可以同时在老机器以及现代的电脑是执行,8086 的另一个优势是它的指令比较小且相当容易学习。

五、实验内容1. 安装Emu8086仿真软件,熟悉菜单栏,工具栏的每个选项的作用,按照操作流程完成程序的编译、链接,并对编辑窗口中所编写的简单汇编程序进行仿真调试,最后能够输出正确结果。

2. 编写简单程序,实现字符串的显示,显示内容为“姓名(换行)、学号”。

六、实验过程及结果1.EMU8086安装。

图1-1-1 Emu8086的安装图1-1-2 Emu8086的安装图1-1-3 Emu8086的安装图1-1-4 Emu8086的安装图1-1-5 Emu8086的安装图1-1-6 Emu8086的安装2. EMU8086使用,安装完毕,得到窗口如下图1-1:图1-2 Emu进入主界面3. 操作流程(1)file->new->empty workplace,编辑程序,如下图1-2:图1-3 Emu8086的安装(2) file->save,保存程序(**.asm格式),完成程序的编辑.(3) assmbler->compile,完成程序的编译和链接,如下图1-3:4. emulator->show emulator,开始仿真调试,如下图1-4:图1-5 Emu程序仿真调试界面5. 左键点击run运行程序,结果如图1-5:图1-6 Emu程序仿真调试结果界面七、实验感想这是微机原理的第一次上机,我熟悉了用emu8086的使用方法,通过这个模拟仿真软件初步了解了计算机的原理。

计算机微机原理上机实验

计算机微机原理上机实验

声光报警器接口实验一、实验目的熟悉可编程并行接口芯片8255的使用和学习开关量接口电路及其控制程序的设计方法。

二、实验内容基本实验按下SW开关,开始报警,即喇叭发声,同时LED灯闪光。

按任意键,结束报警,喇叭停止发声,LED熄灭。

三、实验要求利用MFID实验平台和声-光报警器模块板进行硬件电路连接,利用MF集成开发环境进行声光报警器软件控制程序设计、调试,直到报警器正常工作。

四、实验原理a)声-光报警器模块板电路原理如图1所示。

模块板上包括4种简单的I/O外设:扬声器、8个LED彩灯、8位DIP开关及按钮开关SW。

它们都是并行接口的对象,虽然功能单一,结构简单,但都必须通过接口电路才能进入微机系统,接受CPU的控制,发挥相应的作用。

b)声-光报警器接口的设计原理与方法,参考“微机接口技术及应用”教材第7.2节(P142)图1 声-光报警器模块板电路原理框图五、实验资源配置1.电源:机内供电,实验时将电源开关打到“内”的位置上。

2.I/O端口地址:8255的4个端口地址为300H~303H。

其中A口=300H,B口=301H,C口=302H,命令口=303H。

3.中断资源:IRQ10。

4.软件资源:MFID软件提供的用户应用程序集成开发环境与工具,包含了丰富的汇编语言和C语言程序开发软件包。

六、实验的硬件连接与软件编程c)实验资源配置好之后,使用26芯扁平电缆线(短型),将声-光报警器模块板与平台上的并行接口插座J5连接起来如图2所示,即可进行声-光报警接口实验。

图2 声-光报警器模块与CPU的连接d)实验步骤:步骤一:硬件连线:跳线设置:单线将模块电源L区JP7和JP8跳接;排线将模块电源L区JP8跳接。

单线连法如右图:排线接法如右图:步骤二:将平台的电源开关拔到“内”的位置上。

在配套集成环境下进行硬件检测,达到初始化芯片的目的.步骤三:(学生实验步骤)打开集成环境在“文件”菜单下学生可以选择新建自己的C++/ASM文件或者使用集成环境自带的C++/ASM参考程序进行调试、运行。

微机上机实验报告

微机上机实验报告

微机上机实验报告微机上机实验报告引言:微机上机实验是计算机科学与技术专业的一门重要课程,通过实践操作,学生可以更好地理解和掌握计算机的基本原理和操作技能。

本文将对我在微机上机实验中的学习和实践经验进行总结和分享。

一、实验目的与背景微机上机实验的主要目的是让学生熟悉计算机硬件和软件的基本操作,并通过实际操作来加深对计算机原理的理解。

通过实验,学生可以掌握计算机的开机、关机、操作系统的安装与配置、常用软件的使用等基本技能。

二、实验过程1. 开机与关机在实验室中,我们首先学习了计算机的开机与关机操作。

通过按下电源按钮,计算机开始自检,然后进入操作系统。

关机时,我们需要先关闭所有正在运行的程序,然后选择关机选项。

2. 操作系统的安装与配置在实验中,我们学习了操作系统的安装与配置。

我们使用了Windows操作系统,并按照实验指导书的步骤进行了安装和配置。

通过这个过程,我们了解了操作系统的基本组成和功能。

3. 常用软件的使用在实验中,我们还学习了一些常用软件的使用方法,如办公软件、浏览器和图像处理软件等。

通过实际操作,我们熟悉了这些软件的功能和使用技巧,提高了我们的实际应用能力。

三、实验心得与体会通过微机上机实验,我对计算机的基本原理和操作技能有了更深入的了解。

在实验过程中,我遇到了一些问题,但通过自己的努力和老师的指导,我成功地解决了这些问题。

这个过程让我更加相信,只要付出努力,就一定能够克服困难,取得成功。

在实验中,我还发现了一些需要改进的地方。

首先,我需要更加熟悉操作系统的各项功能和配置方法,以便更好地操作计算机。

其次,我需要更加注重实践操作,通过不断地实践,提高自己的实际应用能力。

最后,我还需要加强对计算机硬件的学习,了解计算机的内部结构和工作原理,以便更好地理解和应用计算机技术。

总结:通过微机上机实验,我对计算机的基本原理和操作技能有了更深入的了解。

在实验中,我不仅学习了计算机的开机与关机操作,还学会了操作系统的安装与配置、常用软件的使用等基本技能。

微机原理上机实验报告 实验报告内容3

微机原理上机实验报告 实验报告内容3
1、连线说明:
B4(RAM)区:CS、BLE、BHE —— A3区:mCS0、BLE、BHE
B4(RAM)区:RD、WR —— A3区:MEMR、MEMW
B4(RAM)区:JP49(A0..A7) —— A3区:JP29(A1..A8)
B4(RAM)区:JP38(A8..A15) —— A3区:JP33(A9..A16)
ቤተ መጻሕፍቲ ባይዱ.CODE
START: MOV AX,8000H ;存贮器扩展空间段地址
MOV DS,AX
MOV ES,AX
NOP
MOV CX,100H
MOV SI,3000H
MOV DI,6000H
CALL Move
MOV CX,100H
MOV SI,3000H
MOV DI,6000H
CLD
REPE CMPSB
JNE ERROR
TRUE: JMP $
ERROR: JMP $
Move PROC NEAR
CLD
CMP SI,DI
JZ Return
JNB Move1
ADD SI,CX
DEC SI
ADD DI,CX
DEC DI
STD
Move1: REP MOVSB
Return: RET
Move ENDP
END START
三、实验结果及其分析
《微机原理与接口技术》课程实验报告
实验名称
数据传送(存贮器)
姓名
系院专业
班级
学号
实验日期
指导教师
成绩
一、实验目的和要求
1、了解静态存贮器的特性、扩展方法,掌握存贮器的读写时序。2、掌握CPU对16位静态存贮器的访问方法3、认真预习本节实验内容,尝试自行编写程序,填写实验报告

32位微机原理上机实验报告:基本IO接口电路设计实验

32位微机原理上机实验报告:基本IO接口电路设计实验

西北工业大学明德学院实验报告实验项目微机原理及应用班级 121204姓名田家豪王辰硕学号 ****** ******指导老师伍明高时间 2015-4-14实验题目基本I/O接口电路设计实验实验目的(1) 掌握基本I/O接口电路的设计方法。

(2) 熟练汇编语言I/O端口操作指令的使用。

实验内容利用三态缓冲器74LS245、锁存器74LS374设计微机总线和外部设备的数据通道,实现微机对外部输入数据的读取和对输出数据的输出。

用开关及LED显示单元的开关和数据灯作为输入和输出显示设备,将读到开关的数据显示在数据灯上。

实验原理1.输入接口设计输入接口一般用三态缓冲器实现,外部设备输入数据通过三态缓冲器,通过数据总线传送给微机系统。

74LS245是一种8通道双向的三态缓冲器。

DIR引脚控制缓冲器数据方向,DIR为1表示数据由A[7:0]至B[7:0],DIR为0表示数据由B[7:0]至A[7:0]。

G引脚为缓冲器的片选信号,低电平有效。

2.输出接口设计输出接口一般用锁存器实现,从总线送出的数据可以暂存在锁存器中。

74LS374是一种8通道上沿触发锁存器。

D[7:0]为输入数据线,Q[7:0]为输出数据线。

CLK引脚为锁存控制信号,上升沿有效。

当上升沿到时,输出数据线锁存输入数据线上的数据。

OE引脚为锁存器的片选信号,低电平有效。

3.输入输出接口设计用74LS245和74LS374可以组成一个输入输出接口电路,既实现数据的输入又实现数据的输出,输入输出可以占用同一个端口。

是输入还是输出用总线读写信号来区分。

总线读信号IOR 和片选信号CS相“或”来控制输入接口74LS245的使能信号G。

总线写信号IOW和片选信号CS 相“或”来控制输出接口74LS374的锁存信号CLK。

实验系统中基本输入输出单元就实现了两组这种的电路。

实验说明及步骤本实验实现的是将开关K[7:0]的数据通过输入数据通道读入CPU的寄存器,然后再通过输出数据通道将该数据输出到数据灯显示,该程序循环运行,直到按动键盘上任意按键再退出程序。

32位微机原理上机实验报告

32位微机原理上机实验报告

32位微机原理上机实验报告西北工业大学明德学院实验报告实验项目微机原理与接口应用实验班级 121204 姓名田家豪王辰硕学号 121566 121567 指导老师伍明高实验题目(1)显示班级符号输出;(2)显示学号符号输出;(3)显示姓名符号输出;(4)显示单个字符输出;实验目的1、掌握在PC机上以十六位进制形式显示数据的方法2、熟悉汇编的调试环境和使用实验内容STACK1 SEGMENT STACK DW 256 DUP(?) STACK2 ENDSDATA SEGMENT USE13 MES1 DB ‘121204’,0AH,0DH,‘$’ MES2 DB‘121566’,0AH,0DH,‘$’ MES3 DB ‘TIANJIAHAO’,0AH,0DH,‘$’ MES4 DB‘121204’,0AH,0DH,‘$’ MES5 DB ‘121567’,0AH,0DH,‘$’MES6 DB ‘WANGCHENSHUO’,0AH,0DH,‘$’SD DB ‘A’ DATA ENDS MOV AH,09H INT 21HMOV DX,OFFSET MES3 MOV AH,09H INT 21HMOV DX,OFFSET SD MOV AL,DS:[SI] AND AL,0F0H SHR AL,4 CMP AL,0AH JB C2 ADD AL,07HCODE SEGMENT USE13ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AXMOV DX,OFFSET MES1 MOV AH,09H INT 21HMOV DX,OFFSET MES2 C2: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AL,DS:[DI] AND AL,0FH CMP AL,0AH JB C3 ADD AL,07H C3: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AX,4C00H INT 21H CODE ENDS END START实验步骤(1)运行编译器,编译程序。

微机原理上机实验(六+十)实验报告 74HC138译码器实验 16x16点阵显示实验

微机原理上机实验(六+十)实验报告 74HC138译码器实验 16x16点阵显示实验

微机原理上机实验报告实验六:74HC138译码器实验实验十:LED 16x16点阵显示实验微机原理上机实验(六)实验报告实验六:74HC138译码器实验一、实验目的1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了解74HC138是如何译码的。

2、认真预习本节实验内容,尝试自行编写程序,填写实验报告二、实验内容1、编写程序:使用8255的PC0、PC1、PC2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。

2、运行程序,验证译码的正确性。

三、实验原理图四、实验步骤1、连线说明:F7区:A、B、C ——D3区:PC0、PC1、PC2F7区:G1、G2A、G2B ——C1区:VCC、GND、GNDF7区:JP63 ——F4区:JP18(LED指示灯)D3区:CS、A0、A1 ——A3区:CS1、A0、A12、调试程序,查看运行结果是否正确五、实验代码Con_8255 EQU 0273H ;8255控制口PC_8255 EQU 0272H ;8255 PC口_STACK SEGMENT STACK ;设置堆栈段DW 100 DUP(?)_STACK ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, SS:_STACKMOV DX,Con_8255MOV AL,80HOUT DX,AL ;8255初始化,PC口作输出用,向8255的控制口输入置位/复位控制字10000000B,PC0~PC7全部复位MOV DX,PC_8255MOV AL,0START1: OUT DX,AL 将00000000B输入8255的PC口CALL Delay 延时INC AL AL加一JMP START1 循环Delay PROC NEAR ;延时Delay1: XOR CX,CX ;CX清零LOOP $ 当前位置循环一次后推出RETDelay ENDPSTART ENDPCODE ENDSEND START六、实验思考题1.在应用系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理?将输入信号转换为三位无符号二进制数,将转换后的数据由低到高分别输入74HC138的A、B、C口,即可实现对最多8的模块的片选功能。

微机原理实验报告

微机原理实验报告

〔软、硬件实验〕
实验名称:[《微机原理》软、硬件实验]
专业班级:[ ]
学生姓名:[ ]
学号:[ ]
指导教师:[ ]
完成时间:[2022.05.26 ]
目录
第一次上机试验1
实验一1
存储器读写实验1
一、实验内容1
二、实验目的1
三、硬件电路(系统中已连接好)1
四、实验程序清单1
五、实验步骤1
六、实验源程序1
七、实验结果及分析2
实验二错误!未定义书签。

8253A定时/计数器实验2
一、实验原理2
二、实验目的2
三、实验线路连接2
四、实验程序清单2
五、实验步骤2
六、实验源程序2
七、实验结果及分析错误!未定义书签。

第二次上机试验错误!未定义书签。

实验三2
8255A可编程并行口实验2
一、实验原理2
二、实验线路连接2
三、实验软件清单3
四、实验步骤3
五、实验源程序3
六、实验结果及分析3
实验四错误!未定义书签。

8259单级中断控制器实验3
一、实验内容3
二、实验线路连接4
三、实验软件清单4
四、实验步骤4
五、实验结果及分析4。

微机原理汇编语言的上机过程 实验报告

微机原理汇编语言的上机过程 实验报告

微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。

实验原理及操作步骤一、上机环境要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。

▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。

▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。

▪调试程序:DEBUG.EXE,用于调试可执行程序。

二、上机过程汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。

1.编辑源程序用文本编辑软件创建、编辑汇编源程序。

常用编辑工具有:、记事本、Word等。

无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。

2.汇编用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。

汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。

汇编过程如下:在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。

此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。

Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。

如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。

此时,需要进行修改,然后再进行汇编。

如此进行,直至汇编无错误,得到目标文件为止。

3.连接汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理上机实验报告实验六:74HC138译码器实验实验十:LED 16x16点阵显示实验微机原理上机实验(六)实验报告实验六:74HC138译码器实验一、实验目的1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了解74HC138是如何译码的。

2、认真预习本节实验内容,尝试自行编写程序,填写实验报告二、实验内容1、编写程序:使用8255的PC0、PC1、PC2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。

2、运行程序,验证译码的正确性。

三、实验原理图四、实验步骤1、连线说明:F7区:A、B、C ——D3区:PC0、PC1、PC2F7区:G1、G2A、G2B ——C1区:VCC、GND、GNDF7区:JP63 ——F4区:JP18(LED 指示灯)D3区:CS、A0、A1 ——A3区:CS1、A0、A12、调试程序,查看运行结果是否正确五、实验代码Con_8255EQU 0273H ;8255控制口PC_8255 EQU 0272H ;8255 PC口_STACK SEGMENT STACK ;设置堆栈段DW 100 DUP(?)_STACK ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, SS:_STACKMOV DX,Con_8255MOV AL,80HOUT DX,AL ;8255初始化,PC口作输出用,向8255的控制口输入置位/复位控制字10000000B,PC0~PC7全部复位MOV DX,PC_8255MOV AL,0START1: OUT DX,AL 将00000000B输入8255的PC口CALL Delay 延时INC AL AL加一JMP START1 循环Delay PROC NEAR ;延时Delay1: XOR CX,CX ;CX清零LOOP $ 当前位置循环一次后推出RETDelay ENDPSTART ENDPCODE ENDSEND START六、实验思考题1.在应用系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理?将输入信号转换为三位无符号二进制数,将转换后的数据由低到高分别输入74HC138的A、B、C口,即可实现对最多8的模块的片选功能。

2.绘制本实验的详细实验电路图。

3.使用8255的PC口读入开关信号,实现编码控制8个LED灯的开关本拓展实验的电路图在上个实验的基础上稍作修改74CH138的G1、G2A、G2B分别接入PC3、PC4、PC5,其余接口接线不变,当开关4为开启时,控制信号有效Con_8255 EQU 0273HPC_8255 EQU 0272HPA_8255 EQU 0270H_STACK SEGMENT STACKDW 100 DUP(?)_STACK ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, SS:_STACKMOV DX, Con_8255MOV AL, 10010000BOUT DX,AL ;向8255的控制口输入控制字,PA口方式0输入,其余口作为输出START1:MOV DX, PA_8255IN AL, DX ;从PA口读入开关当前状态MOV DX, PC_8255OUT DX, AL ;将PA口读入的开关状态由PC口输出,以控制LED灯的亮灭JMP START1 循环执行,不断地由PA口读入开关状态START ENDPCODE ENDSEND START微机原理上机实验(十)实验报告实验十:LED 16x16点阵显示实验一、实验目的1、熟悉8255的功能,了解点阵显示的原理及控制方法;2、学会使用LED点阵,通过编程显示不同字符;3、认真预习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。

二、实验内容1、编写程序,用B4区的二片74HC273控制16X16点阵的行;8255的PA、PB口控制16X16点阵的列;显示字符。

2、按图连接线路;运行程序,观察实验结果,学会编程控制LED点阵显示字符。

三、实验原理图四、实验步骤1、连线说明:(注意连线方向)2、运行程序,观察实验结果。

运行演示程序将会看到字符“欢迎使用星研实验仪”在点阵上自下而上循环移动显示。

五、实验代码ADDR_825EQU 270H ;8255 PA口5_PAEQU 271H ;8255 PB口ADDR_8255_PBEQU 273H ;8255控制口ADDR_8255_CADDR_273 EQU 230H ;IO区74HC273(16位I/O)LINE EQU ADDR_273 ;行线1, 行线2ROW1 EQU ADDR_8255_PA ;列线1ROW2 EQU ADDR_8255_PB;列线2_STACK SEGMENTSTACKDW 100 DUP(?) _STACK ENDS_DATA SEGMENT WORD PUBLIC 'DATA'HUAN DB 00H,0C0H,00H,0C0H,0FEH,0C0H,07H,0FFH,0C7H,86H,6FH,6C H,3CH,60H,18H,60HDB1CH,60H,1CH,70H,36H,0F0H,36H,0D8H,61H,9CH,0C7H,0FH,3 CH,06H,00H,00HYING DB60H,00H,31H,0C0H,3FH,7EH,36H,66H,06H,66H,06H,66H,0F6 H,66H,36H,66HDB37H,0E6H,37H,7EH,36H,6CH,30H,60H,30H,60H,78H,00H,0CF H,0FFH,00H,00HSHI DB00H,00H,06H,30H,07H,30H,0FH,0FFH,0CH,30H,1FH,0FFH,3BH,33H,7BH,33HDB1BH,0FFH,1BH,33H,19H,0B0H,18H,0E0H,18H,60H,18H,0FCH, 19H,8FH,1FH,03HYONG DB00,0,1FH,0FEH,18H,0C6H,18H,0C6H,18H,0C6H,1FH,0FEH,01 8H,0C6H,18H,0C6HDB18H,0C6H,1FH,0FEH,18H,0C6H,18H,0C6H,30H,0C6H,30H,0C6 H,60H,0DEH,0C0H,0CCHXING DB00H,00H,1FH,0FCH,18H,0CH,1FH,0FCH,18H,0CH,1FH,0FCH,0 1H,80H,19H,80HDB1FH,0FEH,31H,80H,31H,80H,6FH,0FCH,01H,80H,01H,80H,7F H,0FFH,00H,00HYAN DB 0,0,0FFH,0FFH,18H,0CCH,18H,0CCH,30H,0CCH,30H,0CCH,7F H,0FFH,7CH,0CCHDB0FCH,0CCH,3CH,0CCH,3CH,0CCH,3DH,8CH,3DH,8CH,33H,0CH, 06H,0CH,0CH,0CHSHI0 DB01H,80H,00H,0C0H,3FH,0FFH,3CH,06H,67H,0CCH,06H,0C0H, 0CH,0C0H,07H,0C0HDB06H,0C0H,7FH,0FFH,00H,0C0H,01H,0E0H,03H,30H,06H,18H, 1CH,1CH,70H,18HYAN0 DB00H,00H,0FCH,60H,0CH,60H,6CH,0F0H,6CH,0D8H,6DH,8FH,6 FH,0F8H,7EH,00HDB06H,0C6H,07H,66H,3FH,0ECH,0E7H,0ECH,06H,18H,1FH,0FFH ,0CH,00H,00H,00HYI DB0CH,0C0H,0CH,60H,18H,7CH,1BH,6CH,33H,0CH,73H,18H,0F1 H,98H,31H,98HDB30H,0F0H,30H,0F0H,30H,60H,30H,0F0H,31H,98H,33H,0FH,3 EH,06H,30H,00HNONE DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H, 00H,00H,00H_DATA ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, DS:_DATA, SS:_STACKMOV AX,_DATAMOV DS,AXMOV ES,AXNOPCALL INIT_IOCALL TEST_LED ;调用测试子程序,测试LED是否全亮CALL CLEAR;滚动显示多个字符MOV CX,9 ;九个汉字CHS_SHOW:LEA SI,HUAN ;取首个汉字的有效地址CHS_1: PUSH CX ;CHS_1可以滚动显示多个字符MOV CX,16CHS_2: CALL DISP_CH ;实现显示,DISP_CH可以把每个汉字的32个字节读完并显示出来INC SI 实现逐行滚动,SI每次循环自增两次,体现为字模向上移动一行INC SILOOP CHS_2POP CXLOOP CHS_1 ;读下一个循环对应的汉字JMP CHS_SHOW;显示一个16*16点阵字子程序,字型码放在DPTR指出的地址DISP_CH PROC NEARPUSH CXMOV CX,8CALL DISP1DISP_CH_1:LOOP DISP_CH_1POP CXRETDISP_CH ENDP;显示一个16*16点阵字子程序,字型码放在显示缓冲区XBUFF DISP1 PROC NEARPUSH SIPUSH CXMOV CX,16 ;计数器,16列依次被扫描MOV BL,0FEH ;上边列输出值MOV BH,0FFH ;下边列输出值REPEAT: MOV DX,LINEMOV AX,BXOUT DX,AX ;列输出LODSBCALL ADJUST ;调整AL,将AL中二进制数旋转180度MOV DX,ROW1OUT DX,AL ;左边行输出LODSBCALL ADJUST ;调整AL,将AL中二进制数旋转180度MOV DX,ROW2OUT DX,AL ;右边行输出CALL DL10MSCALL CLEARSTCRCL BL,1RCL BH,1 ;循环移位BX,行线扫描输出0LOOP REPEATPOP CXPOP SIRETDISP1 ENDPINIT_IO PROC NEARMOV DX,ADDR_8255;8255控制字地址_CMOV AL,80H ;设置8255的PA、PB、PC口为输出口OUT DX,AL ;写控制字RETINIT_IO ENDPCLEAR PROC NEARMOV AX,0FFFFHMOV DX,LINEOUT DX,AXMOV AL,0MOV DX,ROW1OUT DX,ALMOV DX,ROW2OUT DX,ALRETCLEAR ENDP;测试LED子程序,点亮LED并延时1S TEST_LED PROC NEARMOV DX,LINEXOR AX,AXOUT DX,AXMOV AL,0FFHMOV DX,ROW1OUT DX,ALMOV DX,ROW2OUT DX,ALCALL DL500msCALL DL500msRETTEST_LED ENDP;调整AL中取到的字型码的一个字节,将最高位调整位最低位,最低位调整为最高位ADJUST PROC NEARPUSH CXMOV CX,8ADJUST1: RCL AL,1XCHG AL,AHRCR AL,1XCHG AL,AHLOOP ADJUST1MOV AL,AHPOP CXRETADJUST ENDPDL10ms PROC NEARPUSH CXMOV CX,133LOOP $POP CXRETDL10ms ENDPDL500ms PROC NEARPUSH CXMOV CX,0FFFFHLOOP $POP CXRETDL500ms ENDPSTART ENDPCODE ENDSEND START六、实验思考题1.修改程序,使显示的字符从左至右动态循环显示。

相关文档
最新文档