汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

合集下载

汇编语言程序设计实验

汇编语言程序设计实验

实验一汇编语言的上机过程及指令学习一、实验目的1.学习汇编语言的上机过程;2.学习DEBUG的使用方法;3.学习数据传输指令、算术运算指令的寻址方式、使用方法及对标志寄存器的影响情况。

二、上机环境硬件:PC及兼容微机软件:或或任何文本编辑系统MASM.EXELINK.EXE三、实验内容及步骤1.学习汇编语言的上讥过程:进入MASM文件夹。

(1)建立“*.ASM”文件。

方法是:键入:ED 文件名.ASM回车参考程序如下:;PROGRAM TITLEdata segment ;数据段定义source_buffer db 40 dup(‘a’);源串data endsextra segment ;扩展段定义dest_buffer db 40 dup(?) ;目标串extra endscode segment ;代码段定义main proc far ;主函数assume cs:code,ds:data,es:extra ;段声明start: push ds ;保存返回地址xor ax,axpush axmov ax,data ;数据段寄存器赋值mov ds,axmov ax,extra ;扩展段寄存器赋值mov es,axlea si,source_buffer ;取得源串首地址lea di,dest_buffer ;取得目标串首地址cld ;串传送时地址增量mov cx,40 ;串长40个字符rep movsb ;串传送ret ;返回系统main endpcode endsend start注意:在输入程序的过程中,要用F3_S随时存盘,程序输入完毕后用F3_E命令保存文件并退出编辑系统(也可以使用其他编辑文件,如:TURBO C、TURBO PASCAL、WPS、记事本等均可)。

(2)用MASM汇编程序对刚建立的“*.ASM”文件进行汇编,产生“*.OBJ”目标文件,方法是:键入:MASM 文件名;回车(也可以在文件名后不加“;”,回车后按提示要求进行输入)若有错误,回到第(1)步再用编辑文件进行修改。

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

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

《微机原理及接口技术实验报告》学院:电气信息学院班级: 109班老师:罗江陶学号: 1143031270姓名:实验一汇编语言程序的上机步骤一、实验目的:1、了解汇编语言程序的执行流程。

2、熟悉和使用DEBUG调试工具,分析和读懂一些及硬件相关的小程序。

3、通过对程序的分析,理解计算机程序的执行过程。

4、了解并逐步熟悉汇编语言的编辑方法及特点.5、复习8086汇编语言的段结构、常用的指令及伪指令、存储空间的分配等。

6、掌握汇编语言的编辑、汇编及连接的过程。

7、了解并逐步掌握运用DEBUG进行调试汇编语言程序二、实验内容:以文件名为1.asm源程的序为例,学习汇编语言的上机步骤。

汇编语言程序MASM软件由编辑器,汇编MASM.EXE程序,连接LINK.EXE程序以及DUEBUG.EXE调试程序四个部分组成。

汇编语言编制完成后,在计算机上的操作过程就分为四个阶段。

1. 编辑:首先输入源程序:在记事本里录入,注意在保存时文件格式必须选择所有文件,文件后缀名为.ASM, 即保存时文件名为XXX.asm。

2.用汇编程序MASM.Exe对源程序.ASM文件汇编,生成目标文件.OBJ:双击MASM软件中的MASM.Exe文件框,在命令行后键入源程序名XXX.asm,(如果源程序及MASM软件在同一路径下,可以只键入文件名,而不要后缀)3.连接LINK.EXE双击MASM软件中的LINK.Exe文件框,在命令行后键入目标文件名XXX.OBJ(如果源程序,目标文件及MASM软件在同一路径下,可以只键入文件名,而不要后缀)如果连接没有错误,就会产生一个XXX.EXE的可执行文件,如果.OBJ文件有错误,连接时会指出错误的原因。

4.运行和调试DEBUG.exe运行可执行文件,即双击XXX.EXE文件框即可,或在DOS下运行此程序,E:\XXX.EXE。

三、程序流程图:四、程序清单及注释:DATA SEGMENTNUM1 DB 35,35HNUM2 DW 35,35HNUM3 DB 4 DUP (34,3 DUP (34H))NUM4 DB '34AB'NUM5 DW '34','AB'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BX,OFFSET NUM1MOV AL,[BX]MOV BX,OFFSET NUM5MOV AX,[BX]MOV AH,4CHINT 21HCODE ENDSEND START五、运行结果:将以上程序在笔记本中保存为xueyuan1.ASM 编译后显示编译成功:运行结果如下:运行可执行文件出现此界面后“闪退”六、实验心得:通过本次实验,我了解了一个汇编程序在计算机上的执行步骤,如何实现一个汇编程序的编辑、连接、运行。

出错信息(川大微机原理实验资料和内容以及MASM使用方法)

出错信息(川大微机原理实验资料和内容以及MASM使用方法)

出错信息在使用MASM5.0对源程序进行汇编时,对于有错误的或可置疑的语句,MASM将显示出相关出错或警告信息。

出错信息分为两类:一类是带编号的出错代码信息。

这些错误或警告与源程序中的某一个语句(或指令)行代码有关,并赋以相应的编码。

在显示出错代码的同时,还给出了简要的注释。

另一类出错信息没有编号,他们是针对整个汇编程序的,而不是针对某一语句行的,因而,只给出了简要的注释。

一、带编号的错误带有编号的错误信息的显示格式如下:sourcefile (line):code messagesourcefile是出错的源程序文件名。

如果定义于INCLUDE文件中的宏有错,则源程序文件名是指引用宏并对其进行展开的那一个程序文件名。

line是MASM无法进行汇编的那条语句源程序中的行号。

Code是以Microsoft 语言程序格式指定的代码。

它以error或warning开始,后跟5个字符的代码。

第一个字符表示编程语言,汇编语言是字符A;第二个代码是数字符,表示警告级别;2表示严重错误(Severe Errors);4表示严重警告(Severe Warnings);5表示建议警告(Advisory Warnings);最后三个数字是错误编号。

message是对该错误或警告的简要说明。

比如:test.ASM(33):error A006:Phase error between passes上述信息表明,在源程序test.ASM的33行中,有006号严重错误。

下面,将按照编号列出错误信息,并给与简要的解释。

错误代码错误描述0Block nesting error块嵌套错误。

指嵌套的过程、段、结构、宏或非正常结束。

例如在某嵌套语句序列中,有外层的结束语句,而无内层的结束语句,所造成的嵌套错误。

1 Extra characters on line在一语句行中有多余的字幅。

指在一行中除了已有该汇编语句的全部信息外,还有多余的字幅。

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

第一部分汇编语言程序设计实验一熟悉、使用DEBUG调试工具一.上机目的:1.了解并逐步熟悉汇编语言的编辑方法及特点.2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。

3.掌握汇编语言的编辑、汇编及连接的过程。

4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。

二.实验内容:1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。

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

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

4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。

5.运用DEBUG。

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

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

程序清单:多字节非压缩型BCD数除法(88754/6=14792)DA TA SEGMENTA DB 8,8,7,5,4B DB 6C DB 5DUP (0)N EQU 5DA TA ENDSCODE SEGMENTASSUME CS:CODE;DS:DATA;ES:DATA,START MOV AX,DA TAMOV DS,AXMOV ES,AXCLDLEA SI,ALEB DI,CMOV CX,NMOV AH,0LP1:LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2:MOV DL,[DI]MOV AH,2INT 21HDEC DILOOP LP2MOV AH,4CHINT 21HCODE: ENDSEND START实验二设计汇编语言程序一.8088提供了一套字符串处理指令,这些指令的特点是:在使用前必须先在指定的寄存器中存入源字符串和目的字符串的首地址及相关字符数,在处理过程中还可以使用REP重复操作前缀。

实验一 熟悉masm5.0

实验一 熟悉masm5.0

实验一汇编语言程序设计的实验环境及实验步骤知识提要:本章主要进行汇编语言实验环境及实验步骤,涉及到的知识点包括:汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:(1) 编辑源程序(生成.ASM文件)(2) 汇编源程序(.ASM → .OBJ)(3) 连接目标程序(.OBJ → .EXE )(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)(5) 运行程序输出结果。

一、实验要求和目的初步了解汇编语言程序设计环境和步骤二、软硬件环境1、硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存;2、软件环境:装有MASM 5.0、DEBUG、LINK、EDIT、CREF.EXE和EXR2BIN.EXE等应用程序。

三、实验内容与步骤1、实验内容调试程序 hello2、实验步骤汇编语言程序设计上机过程如图1.1所示。

图1.1 汇编语言程序上机过程1.打开MASM50文件夹2.打开masm,回车enter。

如下图:3.输入hello.asm,回车enter。

如下图:3.回车enter4.输入hello,回车enter5.输入hello,回车。

6.打开LINK。

7.输入hello,回车8.回车9.输入hello10.7-8步运行结果,如图所示11.然后,回车,对话框消失。

12.运行dos,输入下图所示指令。

13.然后输入hello,回车,即运行我们编译好的可执行文件。

结果显示如图四、思考与练习(1)思考新生成了几个文件(2)改成输出字符为hello world!重新执行。

汇编语言程序设计实验指导书

汇编语言程序设计实验指导书

实验一宏汇编MASM5.0运行环境一、实验目的1、熟悉的MASM5.0宏汇编程序运行环境2、掌握用MASM5.0运行汇编语言程序的步骤3、学习及掌握的debug程序的各种命令并调试汇编语言程序。

二、实验仪器计算机、masm汇编运行环境三、实验原理1、建立汇编语言的工作环境(1)编辑程序:EDIT .COM(2)汇编程序:MASM .EXE(3)连接过程:LINK.EXE(4)调试程序:DEBUG .EXE2、运行汇编语言程序的步骤(汇编语言程序的上机过程)在汇编实验步骤的word文档中(请下载参考)。

(1)用汇编程序建立源文件(*.asm)汇编程序:记事本,写字板或EDIT.EXE 。

(文本文件编辑器)扩展名为:.asm(2)用汇编程序(MASM、EXE)产生OBJ文件。

(3)用连接程序(LINK 、EXE)生成EXE文件。

(4)程序的执行直接输入文件名LINKEDIT记事本写字板MASM3、用DEBUG 运行、调试汇编语言程序(1)进入DEBUGC:\ DEBUG (前提DEBUG .COM 程序在C 盘)屏幕显示:- “-”这个符号是进入DEBUG的提示符,在该提示符下可键入任意DEBUG 命令,现在用A命令送程序。

(2)送程序并汇编-A 100169C:0100 MOV DL ,33169C:0102 MOV AH ,2169C:0104 MOV INT 21169C:0106 MOV INT 20169C:0101此程序已送完,并汇编成机器指令(3)现在用G命令一运送程序-G3看一下机器指令是什么样的用反汇编命令U(4)反汇编-U 100 :108段地址偏移地址指令169C :0100 B233 MOV DL ,33169C :0102 B402 MOV AH ,02169C :0104 CD21 INT 21169C :0106 CD20 INT 20169C :D108(5)用Q命令退出DEBUG 返回DOS-QC:\4、DEBUG 命令(1)汇编命令A格式1)A < 段寄存器名>:<位移> ;(段寄器)为段地址2)A <段地址> :<位移> ;(c s) 为段地址3)A <位移> ;4)A ;以CS:100作地址功能:键入该命令后显示的地址和位移并等待用户从键盘逐条键入汇编命令。

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

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

微机原理实验报告学院:专业班级:姓名学号实验一汇编语言编程基础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位的,和该软件版本不兼容。

汇编语言设计(微机实验报告)

汇编语言设计(微机实验报告)

一、实验名称:汇编语言设计二、实验目的:1.熟悉 MASM.EXE 和 LINK.EXE 的使用方法。

2.了解 debug 调试工具,观察程序的执行过程和对寄存器和内存单元的影响。

三、实验内容1、首先在硬盘上建立一个文件夹E:\MASM。

2、下载 MASM.EXE 和 LINK.EXE 到E:\MASM 文件夹里。

3、经过以上两步,已经做好了准备工作,接下来书写程序。

计算y = a × b + c - 18,a、b、c均为带符号的8 位二进制数据,为了实验观看实验结果,假设 a = 34H、b = 56H、c = E7H。

程序源代码如下(分号后面内容为注释内容,可以不输入):CC EQU 18 ;伪指令定义CCSTACK SEGMENT ;堆栈段起始DW 256 DUP(?) ;在堆栈段中预留了256 个字的内容TOP LABEL WORD ;TOP 为栈顶偏移地址STACK ENDS ;堆栈段结束DATA SEGMENT ;数据段起始DAT1 DB 34H ;DAT1为题中操作属数a,为字节,存于数据段中DAT2 DB 56H ;DAT2 为题中操作书b,为字节,存于数据段中DAT3 DB 0E7H ;DAT3 为题中操作书c,为字节,存于数据段中DATY DW ? ;DATY为题中计算结果预留空间,为字,存于数据段中DATA ENDS ;数据段结束CODE SEGMENT ;代码段起始ASSUME CS:CODE,DS:DATA,SS:STACK ;分配段地址对应关系START: MOV AX,DATA ;START为标号,MOV语句将DATA数据段地址送AX MOV DS,AX ;将AX内容送入DS,赋予DS数据段DATA段地址MOV AX,STACK ;将STACK堆栈段地址送入AXMOV SS,AX ;将AX内容送入SS,赋予SS堆栈段STACK的段地址MOV SP,OFFSET TOP ;SP设初值MOV AL,DAT1 ;取a,直接寻址方式MOV BL,DAT2 ;取b,直接寻址方式IMUL BL ;AX <- AL * BL,即将a * b 的值存入AXMOV BX,AX ;将AX 内容保存至BXMOV AL,DAT3 ;取c,直接寻址方式CBW ;由于c 是8位有符号数,所以做符号扩展至AHADD AX,BX ;AX <- AX + BX,完成将a*b+c结果存入AX操作SUB AX,CC ;AX <- AX - 18MOV DATY,AX ;将a*b+c-18的值,存放至数据段中偏移地址DATY的内存中MOV AH,4CH ;将4CH存入AH,为了下句调用DOS 21号中断INT 21H ;调用DOS 21中断,由AH=4CH决定返回DOS操作系统CODE ENDS ;代码段结束END START ;程序结束将以上代码保存为扩展名为.ASM 的文件的方法如下:点击“开始”菜单“运行”notepad,打开记事本程序,在记事本中输入如上代码。

汇编语言程序设计实验报告

汇编语言程序设计实验报告

汇编语言程序设计实验报告汇编语言程序设计实验报告引言汇编语言是一种低级语言,用于编写计算机的底层程序。

在计算机科学与技术领域,汇编语言程序设计是一门重要的课程。

本篇实验报告将介绍我在汇编语言程序设计实验中所学到的知识和经验。

实验目的本次实验的目的是通过编写汇编语言程序,加深对计算机底层原理的理解,并掌握汇编语言的基本语法和编程技巧。

实验环境在实验中,我使用了一台运行Windows操作系统的计算机,并安装了MASM 汇编语言开发工具。

实验内容1. 汇编语言基础知识在实验开始前,我先学习了汇编语言的基础知识。

汇编语言使用助记符来代表机器指令,与机器指令一一对应。

了解了寄存器、内存和指令的概念,并学会了如何使用它们来编写汇编程序。

2. 汇编语言程序设计在实验中,我编写了一些简单的汇编语言程序,以加深对汇编语言的理解和应用。

例如,我编写了一个计算两个数之和的程序,通过将两个数存储在寄存器中,并使用加法指令进行运算,最后将结果保存到指定的内存位置。

3. 汇编语言程序调试在编写汇编语言程序时,我遇到了一些错误和问题。

为了解决这些问题,我学会了使用调试工具来定位错误。

通过逐步执行程序,并观察寄存器和内存的变化,我能够找到程序中的错误并进行修正。

4. 汇编语言程序优化在实验中,我也尝试了对汇编语言程序进行优化,以提高程序的性能和效率。

通过减少指令的数量和使用更高效的算法,我成功地改进了程序的执行速度。

实验心得通过本次实验,我深刻体会到了汇编语言程序设计的重要性和挑战性。

汇编语言虽然复杂,但它能够直接操作计算机的硬件,提供了更高的灵活性和效率。

通过编写汇编语言程序,我不仅加深了对计算机底层原理的理解,还提高了问题解决和调试能力。

总结汇编语言程序设计实验是一门重要的课程,它为我们提供了学习计算机底层原理和编程技巧的机会。

通过实验,我掌握了汇编语言的基本知识和技巧,并成功编写和优化了汇编语言程序。

这次实验不仅加深了我的理论知识,还培养了我的实际操作能力。

汇编语言程序设计MASM汇编器利用

汇编语言程序设计MASM汇编器利用

汇编语言程序设计实验二MASM 汇编器利用学号:姓名:1.利用MASM为DOS和Windows编程:a)DOS中运行的程序:先输入程序,.386.model flat, stdcalloption casemap :noneinclude \masm32\include\include \masm32\include\include \masm32\include\includelib \masm32\lib\includelib \masm32\lib\.dataHelloWorld db "Hello World!", 0.codestart:invoke StdOut, addr HelloWorldinvoke ExitProcess, 0end start再打开DOS命令提示符界面,输入“\masm32\bin\ml /c /Zd /coff ”在没错误情形下,能够连接文件,输入“\masm32\bin\Link /SUBSYSTEM:CONSOLE “,在工作目录中会产生可运行文件,运行并记录运行结果。

b)Windows 中运行的程序:先修改程序,.386.model flat, stdcalloption casemap :noneinclude \masm32\include\include \masm32\include\include \masm32\include\includelib \masm32\lib\includelib \masm32\lib\.dataHelloWorld db "Hello World!", 0.codestart:invoke MessageBox, NULL, addr HelloWorld, addr HelloWorld, MB_OKinvoke ExitProcess, 0end start用命令“\masm32\bin\ml /c /Zd /coff ”编译程序,再用命令“\masm32\bin\Link /SUBSYSTEM:WINDOWS ”连接程序,运行并记录运行结果。

连接(川大微机原理实验资料和内容以及MASM使用方法)

连接(川大微机原理实验资料和内容以及MASM使用方法)

连接无论是单模块程序,还是多模块程序,虽然在对每一个模块汇编后都生成了相应的目标文件.OBJ,但它们却是不可运行的。

只有在将它们连接(LINK)后,才能生成一个可执行(运行)的.EXE文件或程序。

8086目标模块连接程序LINK,能够把一个或多个独立的目标文件.OBJ和定义于库文件.LIB中的子程序与变量,连接装配成一个可重定位的可执行文件.EXE。

在连接过程中,除了生成.EXE程序外,用户还可以根据需要,生成相应的内存映像文件.MAP。

LINK的操作在DOS环境下使用LINK,同使用MASM一样,也有提示应答和命令行两种使用法。

1.提示应答方式在DOS提示状态下,键入LINK命令后,便显示版权信息,接着依次显示目标模块文件名,可执行文件的文件名、映像文件的文件名和库文件名等提示信息。

用户只需根据提示信息,键入或选用相应的文件名就可以了。

例如:C:\MASM >LINKMicrosoft ® Corp. Overlay Linker Version 3.60Copyright © Microsoft Corp. 1983-1987,All rights reservedObject Modules[.OBJ]:EXAMPLE↙—连接EXAMPLE.OBJ目标模块Run File [EXAMPLE.EXE]:↙—生成的默认EXAMPLE.EXE文件List File[NUL.MAP]:↙—默认不生成.MAP文件Libraries[.LIB]: ↙—连接时不需要库文件如果需要连接多个目标模块,则在相邻模块文件名间用空格(Space)或“+”号隔开。

如果选用默认文件名,只需按回车键就可以了。

通常,汇编程序不需要任何库文件,这时也只需按回车键就行了。

假设有MODA.OBJ、MODB.OBJ和MODC.OBJ三个目标模块,程序中调用了MA TH.LIB 库中的某些子程序,且该库文件存放在B盘上的lib子目标中,希望连接时能生成MODA.EXE和MODA.MAP。

汇编语言上机指导及例示(川大微机原理实验资料和内容以及MASM使用方法)

汇编语言上机指导及例示(川大微机原理实验资料和内容以及MASM使用方法)

汇编语言上机指导及例示、习题从如何建立源文件到进行调试作下简要的介绍,并配例题说明。

由于本人水平有限,在下文在如有错误及可以进一步修改的地方请大家指出汇编语言上机过程:一、上机前的软件准备:MS-DOS操作系统(如:MSDOS6.22 , MSDOS7.0 等)文本编辑器(如: , TURBO.EXE , TC.EXE , C.EXE 等)汇编程序(如:MASM.EXE , ASM.EXE 等)连接程序(如:LINK.EXE 等)调试程序(如:DEBUG.EXE 等)二、汇编程序建立过程:a.建立汇编源程序─通过───→b.编译为目标文件─↓┬─→d.连接为可执行文件↑│ c.不通过,重新修改(语句错误)↓├──────────────────────┘↓↑ f.不正确,用调试工具调试,重新修改(逻辑错误)↓└────────────────────────────←e运行↓正确g.完成三、现在对(二)的每一个标有字母的过程(PROCEDURE)进行详细说明PROCEDURE a:建立汇编源程序(即:建立文件名.asm)这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。

将源程序代码录入计算机的方法很多,下面将介绍具体方法。

1.通过MD-DOS自带的EDIT.EXE文本编辑器进行输入,在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。

存盘后在DOS下可用DOS命令DIR来查看,如果看到了所存的文件存在,就可以进行进程b。

2.如果你的系统中没有EDIT,也可用你所熟悉的文本编辑器进行录入、编辑,如可用c语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。

微机原理汇编实验-汇编语言程序上机操作方法实验

微机原理汇编实验-汇编语言程序上机操作方法实验

学生实验报告实验课程名称:微机原理汇编实验开课实验室:年月日年级、专业、班学号姓名成绩实验项目名称汇编语言程序上机操作方法实验指导教师教师评语一、实验目的学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,为后继课程打下坚实的基础。

二、实验原理使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试,以便掌握汇编语言设计、编写、调试和运行程序的方法。

三、实验仪器、材料1.软件MASM5.02.PC微机一台四、实验步骤1.建立asm文件在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。

注意保存的源文件以asm为后缀。

2.用汇编程序MASM对源文件汇编产生目标程序.OBJ。

3.用连接程序LINK产生可执行文件.EXE。

4.执行程序。

5.程序调试五、实验源代码;------------------------------------------------- ;程序名:Lab101;功能:把NUM数组中的最大值取出并显示输出;-------------------------------------------------DATA SEGMENTNUM DB 12,52,36,14,25,32,14,126 COUNT EQU ($-NUM)DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX,COUNT ;初始化循环次数MOV SI,OFFSET NUMMOV AL,[SI]MOV DL,ALINC SIAGAIN:MOV AL,[SI]INC SICMP DL,ALJL SWAPLOOP AGAINJMP FINISHSWAP:MOV DL,ALLOOP AGAINJMP FINISH;--------------------------------;子程序名:TRANNUM;功能:将数字转换为字符串;入口参数:AL;出口参数:无;--------------------------------TRANNUM PROC NEARMOV AL,DLXOR AH,AHMOV CX,3MOV DL,10TRAN1:DIV DLXCHG AH,ALADD AL,'0'PUSH AXXCHG AH,ALMOV AH,0LOOP TRAN1MOV CX,3TRAN2:POP DXCALL DISPLAYLOOP TRAN2RETTRANNUM ENDP;--------------------------------;子程序名:DISPLAY;功能:将单个字符显示输出;入口参数:DL;出口参数:无;--------------------------------DISPLAY PROC NEARMOV AH,02HINT 21HRETDISPLAY ENDPFINISH:CALL TRANNUMMOV AH,4CH ;程序结束返回DOSINT 21HMAIN ENDPCODE ENDSEND START六、实验过程原始记录(数据图表、计算等)1、打开命令提示符:输入cmd2、输入:cd G:/asm/tos3、输入:G:4、输入:masm lab1015、输入:link lab1016、输入:lab101七、实验结果分析从程序代码分析,所给数值中最大值为126,运行程序后输出结果为126,说明程序能够实现其功能。

汇编编译工具MASM6.11的使用实验报告

汇编编译工具MASM6.11的使用实验报告
(注意:文件扩展名为.ASM)
2)、用MASM命令对源文件进行汇编,产生.OBJ文件。若汇编时提示有错(注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。),用文字编辑工具修改源程序后重新汇编,直至通过。
3)、用LINK将.OBJ文件连接成可执行的.EXE文件。
4)、在DOS状态下运行LINK产生的.EXE文件。若未出现预期结果,用DEBUG检查程序。
Microsoft (R) MASM Compatibility Driver
Copyright (C) Microsoft Corp 1993. All rights reserved.
Invoking: ML.EXE /I./Zm /c hello.asm
Microsoft (R) Macro Assembler Version 6.11
熟悉汇编编译工具masm6.11的使用:学会使用MASM编译程序、学会使用LINK
连接程序。注意:应事先准备好示例程序。
编辑一个扩展文件名为ASM的汇编语言源程序。
用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件(扩展名为OBJ)。
用连接程序LINK或TLINK连接目标代码文件,形成可执行文件(扩展名为EXE)。
Copyright (C) Microsoft Corp 1981-1993. All rights reserved.
Assembling: hello.asm
D:\MASM611\BIN>link hello
Microsoft (R) Segmented Executable Linker Version5.31.009Jul 13 1992
实验数据和结果
Microsoft Windows XP [版本5.1.2600]

汇编语言程序设计实验报告

汇编语言程序设计实验报告

汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是一种底层的计算机语言,通过直接操作计算机的硬件和寄存器来实现程序的功能。

在本次实验中,我们学习了汇编语言的基本语法和编程技巧,并通过实践编写了一些简单的程序。

本报告将对实验过程和结果进行总结和分析。

一、实验目的本次实验的主要目的是让我们掌握汇编语言的基本语法和操作方式,培养我们对计算机底层运行机制的理解能力。

通过编写汇编程序,我们可以更深入地了解计算机的运行原理,并且可以更加高效地编写一些底层程序。

二、实验环境本次实验使用的是Windows操作系统,并且我们使用了MASM汇编器来编译和运行我们的汇编程序。

MASM是一款经典的汇编语言开发工具,具有强大的功能和广泛的应用领域。

三、实验内容在本次实验中,我们完成了以下几个任务:1. 编写一个简单的汇编程序,实现两个数字的相加功能。

2. 编写一个汇编程序,实现对一个字符串进行反转。

3. 编写一个汇编程序,实现对一个数组进行排序。

四、实验步骤1. 首先,我们学习了汇编语言的基本语法和指令集。

了解了汇编语言中的寄存器、指令和内存等概念,并且学会了如何使用它们来编写程序。

2. 接着,我们开始编写第一个程序,实现两个数字的相加功能。

通过学习汇编语言中的加法指令,我们可以将两个数字加载到寄存器中,并且使用相应的指令进行相加操作。

3. 然后,我们编写了第二个程序,实现对一个字符串进行反转。

通过学习汇编语言中的循环和条件判断指令,我们可以逐个字符地读取字符串,并且将它们按照相反的顺序存储到新的内存空间中。

4. 最后,我们编写了第三个程序,实现对一个数组进行排序。

通过学习汇编语言中的比较和交换指令,我们可以对数组中的元素进行排序,并且将排序结果存储到新的内存空间中。

五、实验结果通过以上的实验步骤,我们成功地完成了编写汇编程序的任务,并且得到了正确的结果。

我们的程序可以实现两个数字的相加、字符串的反转和数组的排序功能,并且运行速度较快,效果较好。

汇编语言程序设计实验报告

汇编语言程序设计实验报告

《汇编语言程序设计》实验报告院系专业年级学号姓名目录实验1 Masm6.11的使用方法............................................ 错误!未定义书签。

实验2 比较两个字符串的大小 . (9)实验3 求学生名次 (16)实验4 求员工年工作量 (29)实验5 子程序和主程序之间的参数传递 (37)实验6 C语言和汇编语言混合编程下的排序算法 ......................................... .42实验7 采用汇编语言对C语言函数调用的方法求平均数.. (46)实验一 Masm6.11的使用方法一、实验目的1、创建一个新的汇编语言程序,熟练掌握汇编语言开发工具的使用方法,并对开发环境中一些坏境变量进行设置。

2、创建一个工程文件,对该工程文件进行编译,连接,并运行;3、对建立的工程文件进行调试,在运行过程中查看各个寄存器的值,内存单元的值等。

二、实验环境该试验包括的硬件和软件条件如下:1、硬件环境(1)Intel i5 3317U(2)内存4G2、软件环境(1)Window XP Professor(2)MASM6.11开发软件三、实验步骤1、将Masm6.11安装程序拷贝到D盘根目录下,并执行d:\Masm611目录下Setup.exe文件,按照安装提示将程序安装到C盘根目录。

2、将C:\masm611\Bin目录下的所有文件拷贝到C:\Masm611\binr目录下,将C:\Masm611\help目录下的所有文件拷贝到c:\Masm61\binr目录下。

3、执行C:\Masm611\Binr目录下的pwb.exe文件,打开开发环境。

4、在PWB编辑窗口中输入实验1.1中的程序,并保存为test.asm文件。

5、执行Project菜单下New Project子菜单创建一个新的工程文件,并命名为test.mak,将test.asm文件加入到该工程文件中。

微机原理程序设计实验

微机原理程序设计实验

微机原理汇编语言上机实验注意:红色斜体部分是对该处的说明或提示,应该按具体内容书写即可实验一顺序程序设计实验目的:熟悉汇编语言程序设计软件masm的使用,掌握顺序程序的编写和运行方法。

实验内容:编写顺序结构的汇编语言程序,并进行编译、链接生成可执行程序,进行调用。

源程序代码如下:(见课本P143页,例4.5的代码,注意变量x、y、z在定义时初值设为6、7、8)…程序的编译、链接和运行:(根据文件《汇编程序调试方法》自己总结书写,把编译、链接和运行的命令写清楚即可,如编辑命令是:EDIT 4-5.asm编译命令是:MASM 4-5.asm链接命令是:LINK 4-5.obj运行命令是:4-5.exe)实验二分支程序设计实验目的:熟悉汇编语言程序设计软件masm的使用,掌握分支程序的编写、运行和调试方法。

实验内容:编写分支结构的汇编语言程序,能对程序进行编译、链接和调用,并能对程序进行调试。

源程序代码如下:(见课本P146页,例4.7的代码)…程序的编译、链接和运行:(根据文件《汇编程序调试方法》自己总结书写,把编译、链接和运行的命令写出来,并写出程序调试的方法和调试命令的用法)编译、链接和运行命令如上个实验所示,调试命令为DEBUG 4-7.exe-R——查看寄存器-U——反汇编-P——分步执行程序-D——查看数据段内容最好能写出具体用法实验三循环程序设计实验目的:熟悉汇编语言程序设计软件masm的使用,掌握循环程序的编写、运行和调试方法。

实验内容:编写循环结构的汇编语言程序,能对程序进行编译、链接和调用,并能对程序进行调试。

源程序代码如下:(见课本P149页,例4.9的代码)…程序的编译、链接和运行:(根据文件《汇编程序调试方法》自己总结书写,把编译、链接和运行的命令写出来,并写出程序调试的方法和调试命令的用法)编译、链接和运行命令如上个实验所示,调试命令为DEBUG 4-9.exe-R——查看寄存器-U——反汇编-P——分步执行程序-D——查看数据段内容最好能写出具体用法。

编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)

编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)

在"开始"找到运行单击在运行中输入CMD输入CD空格\(反斜杠),(进入C盘根目录)输入F:(进入F盘)输入CD空格MASM(进入MASM文件夹)输入MASM空格0817.ASM(检查0817.ASM有无错误并生成.OBJ文件),直到没错输入LINK空格0817.OBJ(进行连接)输入0817.EXE运行汇编语言应用程序的开发一.汇编语言应用程序的开发过程开发一个可独立运行的汇编语言程序,主要包括以下基本步骤:1.用文本编辑软件编辑汇编语言源程序模块(SOURCE MODULES)。

一个完整的汇编语言源程序,可以是单模块结构格式,也可以是多模块结构格式。

无论采用哪一种结构格式,每一个模块都必须是一个可独立汇编的源程序文件(扩展名为.ASM)。

常用的文本编辑软件如EDIT,QEDIT,PE,或由其他高级语言(如TC,VC等)提供的编辑环境,都可以用来编辑汇编语言源程序。

2.调用宏汇编程序MASM对源程序的每一个模块进行汇编(包括对宏的处理),生成目标文件.OBJ。

在汇编过程中,MASM将对源程序模块进行语法检查,若有语法错误,则在汇编结束时,将错误信息显示出来。

这时程序设计者就得返回第二步,再调用编辑程序,并根据提示信息,对有语法错误的语句进行修改,然后再重新进行汇编,直到MASM未发现语法错误为止。

在汇编过程中,出了对每一个源程序模块文件都要生成对应的目标文件.OBJ外,还可以选择生成列表文件.LST和交叉引用文件.CRF,以提供调试时使用。

在汇编时产生的错误,通常称为语法错误。

注意:在汇编过程中不能发现程序的逻辑功能错误。

3.调试连接程序LINK,对一个或多个目标文件.OBJ进行连接,生成一个可执行文件.EXE。

这里所说的目标文件,有的可能是在汇编时产生的,有的可能是由某个库文件.LIB 提供的。

在连接过程中,还可以选择生成内存映像文件.MAP,以供在调试程序时使用。

在连接过程中,如果发现有错误,也会将错误信息显示在屏幕上。

微机原理与应用实验报告-汇编语言程序设计

微机原理与应用实验报告-汇编语言程序设计

实验报告册课程名称:微机原理指导老师:班级:姓名:学号:学期:20 19 —20 20 学年第学期实验目录实验一:汇编语言程序设计实验二:实验三:实验四:实验五:实验六:姓名:成绩:实验一汇编语言程序设计一、实验目的1、学习8088汇编语言程序的基本结构和程序设计的基本方法。

2、熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的全过程。

3、掌握DEBUG基本指令及其使用方法。

二、实验内容编写程序,将80H-8FH共16个字节数据写入数据段1000H偏移地址开始的16个内存单元中。

三、实验步骤1、进入编程环境,编写、汇编、链接、运行汇编语言源程序。

2、利用DEBUG指令,对程序进行调试。

四、实验程序实验代码如下:;将80H-8FH共16个字节数据写入数据段1000H偏移地址开始的16个内存单元中。

DATAS SEGMENTDATA DB80H,81H,82H,83H,84H,85H,86H,87H,88H,89H,8AH,8BH,8CH,8DH,8EH,8FH;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV ES,AXMOV SI,OFFSET DATAMOV DI,1000HMOV CX,16CLDREP MOVSB;此处输入代码段代码HLTMOV AH,4CHINT 21HCODES ENDSEND START五、实验结果将80H-8FH送入1000H-1016H内存段的结果:3.实验小结进一步巩固了数据的一般传送以及体会到了数据块传送的便利之处,进一熟悉了MASM软件的操作和DEBUG命令的使用。

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

第一部分汇编语言程序设计实验一熟悉、使用DEBUG调试工具一.上机目的:1.了解并逐步熟悉汇编语言的编辑方法及特点.2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。

3.掌握汇编语言的编辑、汇编及连接的过程。

4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。

二.实验内容:1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。

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

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

4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。

5.运用DEBUG。

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

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

程序清单:多字节非压缩型BCD数除法(88754/6=14792)DA TA SEGMENTA DB 8,8,7,5,4B DB 6C DB 5DUP (0)N EQU 5DA TA ENDSCODE SEGMENTASSUME CS:CODE;DS:DATA;ES:DATA,START MOV AX,DA TAMOV DS,AXMOV ES,AXCLDLEA SI,ALEB DI,CMOV CX,NMOV AH,0LP1:LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2:MOV DL,[DI]MOV AH,2INT 21HDEC DILOOP LP2MOV AH,4CHINT 21HCODE: ENDSEND START实验二设计汇编语言程序一.8088提供了一套字符串处理指令,这些指令的特点是:在使用前必须先在指定的寄存器中存入源字符串和目的字符串的首地址及相关字符数,在处理过程中还可以使用REP重复操作前缀。

灵活使用这些特点,将会给编程带来很大的方便。

8088对算术运算只提供了基本指令。

实际编程中需要我们加以扩展,这也要求我们很好地掌握。

二.实验内容1.字符串统计。

在数据段中建立一个缓冲区BUFFER,变量VER,编程使得程序具有如下功能:从键盘输入一个子字符串存入VER,从键盘输入包含一个或几个子字符串的字符串存入BUFFER。

统计BUFFER中的字符串含有多少个子字符串以及每个子字符串的位置。

2.双字乘法程序。

设计一个程序实现32位带符号双精度数乘法运算。

由于只有8位和16位的乘法指令。

因此32位乘法运算是不能直接用指令实现的。

但可以用16位乘法指令,通过4次想乘然后把部分积想加。

对于带符号数,可以先根据绝对值求得积。

然后判断积的符号,若积为负数,应将其用补码表示。

三.实验报告:1.提供所设计的完整的程序清单。

2.记录调试过程中发现的问题及解决方法。

3.可以考虑如何设计更好功能的程序。

提示:可以参考的程序流程图被乘数存放:NUM1 乘数存放:NUM2积数存放:MRLT 乘积符号标志存放:SIGN变量NUM1,NUM2,MRLT均用DW32位带符号数乘法流程图32位无符号乘法子程序流程图实验三中值滤波与均值滤波一.在一般工业控制装置中,最常遇到的问题就是干扰。

由于有工业干扰信号的存在,使得从工业现场检测的数据出错,对于不同类型的干扰可以采用不同的办法来排除。

其中对于脉冲干扰常采用中值滤波和均值滤波的方法来解决能获得较好的效果。

因为脉冲干扰是随机叠加在被检测信号之上的,它们造成的后果是使有用信号的幅度增大或变小。

我们在采样程序中加入上述数字滤波程序就可以消除或减少这类干扰的影响。

(1)中值滤波程序:在一个采样周期中连续进行奇数次采样,依次可得奇数个采样值,取其中大小为“中值”的那个采样值作为该采样周期的测量值。

(2)均值滤波:在一个采样周期中,连续进行偶数次采样,去掉最大和最小的两个采样值,求出其余采样值的平均值。

二.实验内容1.在数据段设变量数组合TADA1和TADA2,并存入假设的两组采样值作为某一采样周期的奇数个和偶数个采样值。

2.设计中值滤波程序求出测量值。

3.设计均值滤波程序求出测量值。

4.每个程序应能将结果显示在屏幕上。

5.在计算机上调试程序,并获得正确结果。

四.实验报告:1.分析中值滤波和均值滤波各有什么优缺点。

2.整理出运行正确的程序清单(加以注释)。

并给出程序流程图。

3.试提出对数字滤波器的改进方法或新的方法。

第二部分接口程序设计实验四8253定时器/计数器接口与数字电子琴一,原理PC机的主机箱上装有一只小喇叭,由定时器8253和并行接口芯片8255控制其发音,其电路如下:8253 DRIVER1.8253用定时器2来产生896Hz的音频信号使喇叭发声,我们可以改变定时器2的计数值来改变声音频率,通过发声的延时程序来获得时间长短不同的声音,于是就可以通过编程;来获得声调(频率)和节奏(延时长短),使计算机演奏出乐曲来。

如果再把音符1,2,3,4,. . .5,6,7,1,2,3,······与数字键1,2,3,4,5,6,7,8,9,······对应起来,就可以把计算机变成电子琴。

以下给出有关资料:1.音符1.,2.,3.,4 .,5 .,6.,7.,1,2,3,4,5,6,7,ⅰ频率131 147 165 175 196 220 247 262 294 330 349 392 440 494 5232.计数值计算公式计数值=1.19318MHz(时钟频率)/ 给定频率=1234DCH / 给定频率8253道地地定时器通道2的端口地址:42H(存放计数值,先送低位字节,后送高位字节)命令寄存器地址:43H4.编程参考:1)计算计数值程序段:MOV DI,给定频率MOV DX,12HMOV AX,34DCHDIV DIAX中即为计数值。

2)打开扬声器发声,8255PB0,PBI送出高电平:IN AL 61HOR AL 3OUT 61H AL3)关闭扬声器,停止发声:IN AL 61HOR AL 0FCHOUT 61H AL二.实验内容:1.设计程序让微机演奏一段简单乐曲2.利用DOS的键盘管理功能。

将微机变为一个具有简单功能的电子琴(选作)。

三.实验报告:1.总结设计中断服务的要点及程序结构;2.整理出运行正确的源程序清单(加以注释)给出详细程序流程图;3.有什么新的设想?提示:可以在数据段定义两个表,一个存放乐曲的音调参数(频率对应的计数值),一个存放乐曲的节奏(延时长短)。

然后依次读出,依次发音,直至演奏完整段乐曲。

实验五实时时钟实验一.原理:PC机中8253定时器0是作为系统时钟的定时中断使用的,它被设置为每秒产生18。

2次定时中断。

用户可以改写中断向量表,使这个0级中断转入自己的定时服务程序中去,也可以重新初始化该计数器,使之产生用户所需要的定时中断,这样就可以在计算机控制系统中用来定时采样压力,温度等等被控制参数,然后进行开环或闭环控制。

BIOS在初始化8253定时器以后,给用户留下了一个INT 1CH的软件接口,其处理程序只是一条空操作返回指令,用户可以将其入口地址填入中断向量表1CH型中断向量,使得一进入1CH型中断,便立即执行用户自己的程序,执行完又返回中断服务程序继续执行第二种方式是重新设置定时器0,使其工作在方式3,装入计数值11932,使其每10ms 发一次定时中断。

由于定时器0的中断类型号是08H,所以应将用户的中断服务程序入口地址填入中断向量表的08H向量中。

二.实验内容:1.用第二种方式重新设置定时器0,使其工作在方式3(控制寄存器地址43H),装入计数值11932(端口地址40H),使超10ms产生一次中断;2.设计一个时钟显示程序,要求利用定时器0的定时中断记录时间,然后以hh:mm:ss 的形式在屏幕上显示出来(hh是小时,mm是分,ss是秒),每秒钟显示一次,而且必须在同一位置显示,才能看见变化数位的数字跳动。

3.将程序的入口地址写入中断向量08H,注意在写入前,必须设置一个变量将原中断向量保存起来,以便在程序结束时恢复。

4.程序中要设计输入正确计时点(当前时间值)的方法。

5.按ESC键推出,返回DOS。

(注意:要恢复原来的中断向量,此功能才能实现)。

6.程序中允许时钟和键盘中断。

四.实验报告1.总结设计中断服务的要点及程序结构;2.整理出运行正确的源程序清单(加以注释)给出程序详细流程图;3.有什么新的设想?提示:1.可以在数据段定义一个字符串存放时,分,秒的计数值。

2.利用PSP(程序段前缀)中的参数区(从82H字节开始)存放命令行参数。

命令行参数可以用来输入正确的时间。

输入方式:>命令hh:mm:ss其中命令是你设计的可执行程序的名称,hh:mm:ss表示当前的时:分:秒数值,它们放在命令后面并用空格与命令隔开,称为命令行参数。

定时中断子程序流程图主程序流程图实验六8255并行接口键盘实验一.原理在PC机中有一片8255作为并行接口,接收从键盘来的扫描码。

其原理图如下其中8255在PC机中的端口地址为:PA口:60HPB 口:61HPC 口:62H控制寄存器:63H键盘扫描码ACK信号键盘中断计算机上电复位后,8255的A组B组均被初始化为方式0,PA口和PC口设定为输入,PB口设定为输出,PB7置为低电平,使PA口外的三态门打开,键盘本身由一片8048单片机控制,当有键按下时,将产生一次中断请求,8048将扫描码通过三态门传送到8255PA口,此中断请求通过8259的IRQ1进入,中断类型码为09H。

通过中断服务程序从8255PA口读取键盘的扫描码,并进行处理,就实现了键盘的输入功能。

二.实验内容:1.利用09H型中断设计一个中断服务程序,实现下述功能:(1)对PA口执行IN指令,输入键的扫描码;(2)通过PB口的PB7发一个正脉冲作为对键盘的回答信号ACK;(3)把输入的扫描码变化成ASKII码;(4)把变换后的ASKII码存入缓冲区,同时显示在屏幕上,当显示完20个字符后,停止进一步输入(可利用关闭键盘中断的方法),返回DOS;(5)在返回DOS前,将这20个字符以颠倒的顺序再显示一次。

2.由于在BIOS中以利用09H型中断安装了键盘中断服务程序,因此在本实验中,程序设计应考虑在退出时不破坏原有的设置,具体办法是,在初始化程序段,将09H 型中断向量原有值读出。

相关文档
最新文档