汇编语言与接口技术实验
汇编语言与接口技术实验报告
汇编语言与接口技术实验报告学院:信息与电子工程学院专业:班级:学号:姓名:浙江科技学院2012-2013学年第1学期实验1 汇编语言程序设计一、实验目的1. 熟悉MASM 6.11汇编语言程序开发环境。
2. 掌握汇编语言程序的调试方法和常用的调试工具。
二、实验内容1. 安装MASM 6.11。
2. 设在内存中首地址为BLOCK的区域存有一批数据:61H,84H,93H,0C4H,17H,0FFH,52H,2AH。
分别按下列要求编写汇编语言程序:(1) 视该批数据为8位无符号数,采用冒泡法将其按升序排序;(2) 视该批数据为8位有符号数,采用冒泡法将其按升序排序。
三、实验要求1. 根据实验内容编写程序。
2. 上机调试程序。
3. 记录并分析程序运行结果。
五、程序代码1. 8位无符号数冒泡法排序程序如下:.model small.datan dw 8block db 61h,84h,93h,0c4h,17h,0ffh,52H,2ah .stack 60h.code.startupmov ax,@datamov ds,axmov cx,ndec cxloop1: mov dx,cxmov bx,0loop2: mov al,block[bx]cmp al,block[bx+1]jna continuexchg al,block[bx+1]mov block[bx],alcontinue: add bx,1loop loop2mov cx,dxloop loop1.exitend2、8位有符号数冒泡排序程序如下.model small.datan dw 8block db 61h,84h,93h,0c4h,17h,0ffh,52H,2ah .stack 60h.code.startupmov ax,@datamov ds,axmov cx,ndec cxloop1: mov dx,cxmov bx,0loop2: mov al,block[bx]cmp al,block[bx+1]jle continuexchg al,block[bx+1]mov block[bx],alcontinue: add bx,1loop loop2mov cx,dxloop loop1.exitend六、程序运行结果及分析在命令行debug,反汇编找到初始程序入口0017查看cup寄存器的内容实验2 系统中断接口实验一、实验目的1. 熟悉可编程中断控制器8259A的使用方法。
汇编程序及接口技术实验报告
微机汇编程序及接口技术实验报告汇编程序实验:一、实验目的1、熟悉汇编程序调试过程2、掌握算术运算指令运用3、掌握分支程序的编程和调试方法二、实验设备80X86微型计算机三、实验内容1、编程并调试显示“Hello Word!”字符串的汇编程序TITLE HELLODA TA SEGMENTSTR DB'Hello World!$'DA TA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRMOV AH,9HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2、A、B、C、D、W是互不相等的在数据段中定义的16位有符号数,并假设加减运算不产生溢出。
编写一个完整段定义的汇编语言程序,计算W=(A+B)×(C—D)。
title asmprogram1_1DA TA SEGMENTA DW 1HB DW 3HC DW 4HD DW 2HW DW 2 DUP(?)DA TA ENDS;CODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV AX,AADD AX,BMOV BX,CSUB BX,DIMUL BXMOV W,AXMOV W+2,DXMOV AH,4CHINT 21HCODE ENDSEND START3、设X、Y为在数据段中定义的有符号字变量。
编写一个完整段定义的汇编语言程序(包含必要的伪指令,给出必要的注释)完成以下操作:若0<X且Y<1000,则AX=2000,BX=0;否则AX=0,BX=2000。
STACKS SEGMENT STACK;DEFINE STACKDW 128 DUP(?)STACKS ENDSDA TAS SEGMENTX DW 11HY DW 22HDA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXSUB X,0JNG L1SUB Y,1000JAE L1JMP L2L1:MOV AX,2000MOV BX,0L2:MOV AX,0MOV BX,2000MOV AH,4CHINT 21HCODES ENDSEND START4DA TA SEGMENTBLOCK1 DW 1200H,2000H,3200H,0H,5612H,23H,45H,89H,09H,10H BLOCK2 DW 100 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TASTART:MOV AX,DATAMOV DS,AXLEA SI,BLOCK1LEA DI,BLOCK2MOV CX,100REPT:MOV AX,[SI]CMP AX,0JZ NEXTMOV [DI],AXADD DI,2NEXT:ADD SI,2LOOP REPTMOV AH,4CHINT 21HCODE ENDSEND START5DA TA SEGMENTBLOCK1 DW 1200H,2000H,3200H,0H,5612H,23H,45H,89H,09H,10H BLOCK2 DW 100 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TASTART:MOV AX,DATAMOV DS,AXLEA SI,BLOCK1LEA DI,BLOCK2MOV CX,100REPT:MOV AX,[SI]CMP AX,0JZ NEXTMOV [DI],AXADD DI,2NEXT:ADD SI,2LOOP REPTMOV AH,4CHINT 21HCODE ENDSEND START微机原理及接口技术实验:实验一 8255并行接口实验一、实验目的1、学习并掌握8255的工作方式及其应用。
汇编语言与接口技术实验课件
详细描述
使用接口技术实现数据传输,如 通过串口发送和接收数据。
总结词:了解接口技术及其在数 据传输中的应用
学习接口技术的基本概念和工作 原理,了解常见的接口类型如串 口、并口、USB等。
掌握接口编程的基本方法,了解 接口的硬件连接和驱动程序开发 。
实验三:编写基于接口的驱动程序
详细描述
学习驱动程序的基本概念和开发 流程,了解常见的驱动程序模型 如WinDriver、Linux Driver等。
PCIe接口
用于连接高速扩展卡和计算机主板, 如显卡、声卡等。PCIe接口具有高 速数据传输和低延迟的特点。
接口技术的实现方式
硬件接口
通过物理连接器、电缆和电路板等硬件实现不同系统或设备 之间的连接。硬件接口具有稳定性和可靠性高的特点。
软件接口
通过软件编程和协议实现不同系统或设备之间的通信和数据 交换。软件接口具有灵活性和可扩展性强的特点。
汇编语言与接口技术实验课件
contents
目录
• 汇编语言概述 • 汇编语言基础 • 接口技术基础 • 实验操作与演示 • 实验总结与思考
01 汇编语言概述
汇编语言的定义和特点
总结词
汇编语言是一种低级编程语言,它使用助记符和操作码来描述计算机指令。
பைடு நூலகம்详细描述
汇编语言是计算机程序设计语言中的一种,它直接与计算机硬件交互,使用助 记符和操作码来表示指令。汇编语言具有高度的可移植性和可维护性,同时能 够提供对计算机硬件的直接控制。
接口技术的安全性
问题
接口技术实验中,我意识到了硬 件编程可能带来的安全风险,如 缓冲区溢出、非法访问等。
技术与应用的结合
如何将汇编语言与接口技术更好 地应用于实际问题解决,是值得 进一步探讨的方向。
汇编与接口实验参考文档
《汇编与接口第一次实验》第一次实验作业题目:一、实验目的1.进一步学习汇编语言基本指令使用方法;2.学习DEBUG调试工具的基本使用方法;掌握debug调试命令a、u、r、d、t、g等3.逐条观察程序指令的执行过程,理解指令的功能,理解程序自动、顺序地执行的概念,实践其过程(重点)。
二、实验题目1.编写、输入一个32位二进制数相加程序,逐条执行指令,观察指令执行情况。
2.使用已经过汇编和连接的小程序(t3-2.exe),将其装入内存,逐条执行指令,观察执行过程和结果。
在实验过程中,使用D命令修改XXX 和YYY单元中的数据,再重新计算其结果。
4、如果在一个程序开始执行之前(CS)=0A7F0H(如果十六进制数的最高位为字母,则应该在其前加1个0),(IP)=2B40H,试问该程序的第1个字的物理地址是多少?一.实验第一部分1. 启动计算机的WINDOWS操作系统,在开始菜单中找到“运行”,输入“cmd”后回车,启动ms-dos command程序,再在该程序内输入“DEBUG”并按回车,即启动DEBUG调试程序。
2. 开始编程在启动的debug程序里输入a命令进入编程功能在编程部分逐条输入32位二进制数相加程序的指令,完成无符号数10000100H和1200ffffH的加法操作,程序的代码见图1:图1,程序编写,r指令(执行前),u指令对32位数的低16位操作时,存放初始地址是0AE1:0100,使用U命令对代码进行反汇编我们可以看到对应地址中所存放的指令和他们对应的长度,可以看到MOV和ADD指令的的长度都是3,但ADC的指令长度为4,因为ADC指令中需要考虑进位CF所以比MOV和ADD多了一位长度,如上图。
使用r命令后,可以看到指令执行前各寄存器的内容,CS:IP的内容为0100,下一条执行的指令为MOV AX,0100,操作数寻址为立即数寻址,内存单元的值为0100H。
图2使用t命令单步执行指令后,所得结果见上图2,执行过程中,CS:IP的内容随指令长度的变化依次增加,标志位寄存器只有PF,CF的值在计算过程中有变化,其中在两次CF的标志位CY时表示有进位发生,OF一直为NV,表明计算结果没有溢出。
汇编语言与微机接口技术实验一
实验报告课程名称汇编语言与微机接口技术实验项目汇编语言及I/O地址译码编程练习实验仪器 PC微机、CZ-CIU实验箱学院__ _ _计算机学院_ _ _ 专业计算机科学与技术班级/学号 *学生姓名___ _ _ *_______实验日期 2018/10/23成绩指导教师 *指导书中实验1一、实验目的掌握I/O地址译码电路的原理。
二、实验原理、内容描述和硬件连接实验电路,其中74LS74位D触发器,可直接使用试验台上数字电路实验区的D触发器,74SL138为地址译码器。
译码输出端Y0-Y7在实验台上“I/O地址”输出端引出,每个输出端包含8个地址,Y0:280H-287H,Y1:288H-28FH,当CPU执行I/O指令且地址在280H-2BFH范围内,译码器必中,必有一根译码线输出负脉冲。
接线:Y4/IO地址接 CLK/D触发器Y5/IO 地址接 CD/D触发器D/D触发器接 SD/D角触发器Q/D触发器接逻辑笔三、程序流程图四、代码、和关键注释1.实验电路中D触发器CLK端输入脉冲时,上升沿使Q端输出高电平L7发光,CD端加低电平L7灭。
outport1 equ 2a0h ;给outport1赋值outport2 equ 2a8h ;给outport2赋值code segmentassume cs:code ;声明start: ;程序开始mov dx,outport1out dx,alcall delay ;调延时子程序mov dx,outport2out dx,alcall delay ;调延时子程序mov ah,1 ;功能号01Hint 16h ;中断调用,若ZF=0,表示键盘缓冲区不空,有键按下了,AL中存放键入字符的ASCII码,AH存放扫描码,若ZF=1,表示缓冲区空je startmov ah,4ch ;功能号4CHint 21h ;中断调用,程序终止delay proc near ;延时子程序mov bx,200 ;200作为循环次数存入lll: mov cx,0 ;存入10000Hll: loop ll ;循环本身dec bx ;BX自减一jne lllretdelay endpcode endsend start2.编程实现:在显示器上显示全部标准和拓展ASCII码字符(每输入16个字符换行)MYSTACK SEGMENT STACKDW 64 DUP(?)MYSTACK ENDSDATA SEGMENTDW ?DATA ENDSASSUME CS:CODE,DS:DATA,SS:MYSTACKCODE SEGMENTSTART:MOV AX,DATAMOV DS,AX ;设置DSMOV CX,0100H ;设置循环次数MOV DH,00 ;设定起始字符对应ASCII码DIS: ;循环体TEST DH,0FH ;检测是否到了该行的第16个字符JNZ MEXT ;调到MEXT进行MOV DL,0AH ;将换行符对应得ASCII码存入CALL DISP ;调用DISP子程序MOV DL,0DH ;将回车符对应得ASCII码存入CALL DISP ;调用DISP子程序MEXT:MOV DL,00MOV AH,02HINT 21H ;中断调用,使每输出一个字符个隔一个空白符MOV DL,DHMOV AH,02HINT 21H ;中断调用,输出每一个ASCII码字符INC DH ;DH自加一LOOP DISMOV AH,4CHINT 21H ;中断调用,程序终止DISP PROC NEARPUSH AXMOV AH,02H ;存入功能号02HINT 21H ;显示每个字符POP AXRETDISP ENDPCODE ENDSEND START3.编程实现:从键盘输入一个10进制数字0-9,查表求键入数字的七段代码,存入DL中,并在键入数字之前,显示信息“Please input a number:”。
微机原理与接口技术 实验一 8086汇编语言的编程实践
实验一8086汇编语言的编程实践【实验目的】1.掌握8086汇编语言编程以及调试的过程。
2.学会使用masm.exe、debug.exe、td.exe等软件。
【实验内容】1.通过示范源程序熟悉从如何建立源文件到进行调试【实验步骤】1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。
2.建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。
下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。
在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“ C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口。
窗口标题行显示了EDIT程序的完整路径名。
紧接着标题行下面的是菜单行,窗口最下面一行是提示行。
菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F 打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。
如果键入EDIT命令时已带上了源程序文件名(C:\ASM\HELLO.ASM),在编辑窗口上部就会显示该文件名。
如果在键入EDIT命令时未给出源程序文件名,则编辑窗口上会显示“UNTITLED1”,表示文件还没有名字,在这种情况下保存源程序文件时,EDIT会提示输入要保存的源程序的文件名。
编辑窗口用于输入源程序。
EDIT是一个全屏幕编辑程序,故可以使用方向键把光标定位到编辑窗口中的任何一个位置上。
汇编程序及接口技术实验报告
汇编程序及接口技术实验报告
一、实验目的
本实验的主要目的是了解汇编语言程序的编写和调试方法,并掌握接口技术的应用。
二、实验内容
1.编写一个求给定数的阶乘的汇编程序。
2.利用串口实现汇编程序的输入输出。
三、实验步骤
1.阅读8086汇编语言的使用手册,了解汇编语言的基本语法和指令集。
2.编写一个求阶乘的汇编程序。
程序的基本思路是利用循环和累加的方法来实现阶乘的计算。
3.编写串口输入输出的汇编程序。
使用串口的输入输出功能,实现程序与外部设备的交互。
4.将阶乘程序与串口输入输出程序进行整合,测试程序的功能是否正常。
五、实验结果与分析
经过调试和测试,本实验成功实现了求阶乘的功能,并能通过串口与外部设备进行交互。
实验结果与预期一致。
六、实验总结
通过本次实验,我对汇编语言的编写和调试方法有了更深的了解。
同时,我们也学会了如何利用接口技术来实现程序与外部设备的交互。
这对我们以后的学习和工作都将有很大的帮助。
汇编语言与接口技术实验讲义
汇编语⾔与接⼝技术实验讲义汇编语⾔上机指导书湖南师范⼤学⼯学院计算机专业⽤实验⼀ DOS常⽤命令及8086指令使⽤实验⽬的:通过实验掌握下列知识:1、DOS命令: DIR,DEL,RENAME,FORMAT,COPY。
2、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG3、DEBUG命令: A,D,E,F,H,R,T,U。
4、BCD码,ASCII码及⽤16进制数表⽰⼆进制码的⽅法。
5、8086寄存器: AX,BX,CX,DX,F,IP。
内容及步骤:⼀、DOS常⽤命令练习:1、将新盘插到 A驱动器中,⽤DIR命令查看盘上⽂件。
2、⽤命令 COPY /doc/f9837fdf770bf78a652954ce.html BUG 复制⼀个⽂件。
3、⽤命令 RENAME BUG BG 将BUG ⽂件改为BG。
4、⽤命令 DEL BG 将⽂件BG删除。
在操作时要注意提⽰信息,并按提⽰操作。
⼆、DEBUG 命令使⽤:1、打 DEBUG 进⼊ DEBUG 控制,显⽰提⽰苻 '_ '。
2、⽤命令 F 100 10F 'A' 将'A'的ASCII码填⼊内存。
3、⽤命令 D 100 10F 观察内存中的16进制码及屏幕右边的ASCII 字符。
4、⽤命令 F 110 11F 41 重复上⼆项实验,观察结果并⽐较。
5、⽤命令 E 100 30 31 32 …… 3F将30H-3FH写⼊地址为100开始的内存单元中,再⽤D命令观察结果,看键⼊的16进制数是什么字符的ASCII码?6、⽤H命令检查下列各组16进制数加减结果并和你的⼿算结果⽐较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H(5)A758,347FH7、⽤R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。
《汇编语言与接口技术》课程实践教学改革研究
生 的软硬件编程设计能力
1 汇编 语 言 软 件 实验
第 一 阶段 : 掌握使用 D E B U G调试 和 运 行 程 序 的 方 法, 简化 入 门 实 验 . 提 高 学 生 学 习兴 趣 汇 编 语 言 有 助
M0 V AL . &
M OV CX,COUNT ‘
于学生更好地理解计算机工作原理 . 是 一种 低层语言 。
\ \
教 学 园地
文章 编 号 : 1 0 0 7 — 1 4 2 3 ( 2 0 1 4 ) 0 4 — 0 0 3 8 — 0 4
D OI : 1 0 . 3 9 6 9  ̄ . i s s n . 1 0 0 7 — 1 4 2 3 . 2 0 1 4 . 0 4 . 0 0 9
LEA DI .MES S
MO V AL , CHAR MO V C X, C OUNT
CLD REPNE SCASB
第 三阶段 : 选 择综合性 、 设 计 性 实 验 内容 . 在 针 对 性 实 验 的基 础 上 进行 深 化 . 确 实 提 高 学 生 分 析 问题 、 解 决 问题 的能 力 。 综合性 、 设 计 性 实 验 可 使 学 生 的逻 辑 思 维更加缜密 。 把复杂的问题有秩序地简单化 . 最 终 解 决 问题 。 在 实验 过 程 中 , 教 师 引 导 学 生 突 破 传 统 的思 维 方 式. 鼓 励 学 生 自己 编 写 程 序 并 调 试 程 序 . 直 至得 到 实 验 结 果 。 以 串处 理 指 令 为 例 , 实 现把 字符 串 中 的 ‘ &’ 字 符 用 空 格 符 替 换 的功 能 , 程序段如下 :
LEA DI ,M ES S
师 以实践作 为理论知识讲授的延伸 .学生 以实践 作为
《汇编语言与接口技术》课程实验大纲
《汇编语言与接口技术》课程实验大纲课程编号:B0606061S 课程名称:汇编语言与接口技术课内总学时: 48 实验学时:8×2一、实验课程的性质、目的和任务性质:《汇编语言与接口技术》是信息与计算科学专业开设的一门专业必修课程。
本实验是该门课程的课内实验。
目的:通过理论知识与上机实践结合,使学生建立起“程序存储和程序控制”的牢固概念,培养学生进行微机扩展的应用能力和独立分析问题、解决问题的能力。
任务:通过系统的实践教学锻炼,使学生具有一定的软硬件开发能力,熟悉使用汇编的编译环境,使学生加深理解微机原理的基本知识、常用的汇编语言命令等课程基本内容。
在Dos和汇编语言编程环境下,进行程序的编写和调试的训练。
二、实验内容、学时分配及基本要求三、考核及实验报告(一)考核:本课程实验非独立设课,实验考核以平时实验操作为主(70%),包括学生上实验课的课堂表现(如:有无缺勤、有无事先准备程序代码、课堂上是否认真实验以及实验结果等),结合实验后的实验报告内容(30%),综合评定实验成绩。
实验成绩记入课程平时成绩,实验成绩占总成绩的25%。
(二)实验报告:实验报告内容:包括实验名称、目的、任务(以简洁明了的叙述说明本次实验的任务和目标);实验内容、实验过程描述(包括算法分析过程以及源程序、运行结果等);分析和体会(包括实验结果分析,程序设计与调试过程所遇到的问题,问题解决中得到的经验和体会,进一步改进的设想)。
实验报告以文本形式递交。
实验报告要书写规范、文字简练、语句通顺、图表清晰。
四、主要仪器设备硬件:微型计算机;软件:TASM(或 MASM)、DOS命令环境五、教材及参考书教材:仇玉章.32位微型计算机原理与接口技术.北京:清华大学出版社,2002参考书:[1]谭毓安,张雪兰.Windows汇编语言程序设计教程.北京: 电子工业出版社, 2005[2]赵国相.微型计算机原理与汇编语言程序设计.北京: 科学出版社, 2004[3]朱玉龙,任文岚,朱彤.汇编语言程序设计.北京: 清华大学出版社, 2003。
汇编语言、微机原理、接口技术-实验一:输入输出实验
1)实现两位十进制和的输出
2)实现一位十进制四则运算
3)实现多位数运算
二.思考内容
1.输入输出数据和计算用数据的区别
2.单字符输入输出和串输入输出的不同
二.理论分析或算法分析
文字描述以及算法流程图(文字主要描述基本要求和扩展要求的算法流程区Байду номын сангаас)
基础要求:
1)实现两位十进制和的输出
利用了除法DIV,将商放在AL,余数放AH。除以10后可将AL和AH中小于10的数单独输出
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
运行结果如图一
运行结果如图二
mov ah, 1
int 21h
mov bl, al
mov ah, 2
mov dl, '+'
int 21h
mov ah, 1
int 21h
add bl, al
mov ah, 2
mov dl, '='
int 21h
sub dl, 30h
mov ah, 2
int 21h
Hlt
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
图一:2+3=5
图二:扩展一
思考问题的个人想法,以及算法设想.
1)从键盘中输入和从屏幕上输出的都是字符,和计算用的数据时间相差‘0’即30H。所以一个数从屏幕上输出时将+30H。输入时转换成数字-30H
五.结论:完成了本次实验要求的实验内容。学会了:熟悉emu8086仿真系统,实现控制台输入输出,设计并单步调试实现一位十进制数的加法运算,实现两位十进制和的输出,实现一位十进制四则运算,实现多位数运算。
汇编语言与接口技术实验指导书V1.1
经过以上的工作,到此就可以编译程序了。点击菜单Project选项,在弹出的下拉菜单中选择Build Target命令对源程序文件进行编译,此时会在“Output Windows”信息输出窗口输出一些相关的信息。由提示信息可知:第一行Build Target‘Target1’表示此时正对工程1进行编译操作,第二行Compiling hello.c表示此时正在编译hello.c源程序,第三行lingking...表示此时正在连接工程项目文件,第五行Creating hex file from‘hello’说明已生成目标文件hello.hex,而最后一行说明hello.uvproj项目在编译过程中不存在错误和警告,编译连接成功。若在编译过程中出现错误,系统会给出错误所在的行和该错误提示信息,用户应根据这些提示信息,更正程序中的错误,重新编译直至完全正确为止,至此我们所需的目标代码hello.hex文件已经生成,用户可以使用相关的软件把该程序代码下载到试验仪的单片机中,复位系统后单片机将全速运行用户的程序。
第 2 章
2.1
如上图,首先选择“Keil关联设置”页面,点击“添加MCU型号到Keil中”,在出现的如下面的目录选择窗口中,定位到Keil的安装目录(一般可能为“C:\Keil\”),“确定”
若出现下面的提示框,表示安装成功
2.2
若第一步的驱动安装成功,则在Keil中新建项目时选择芯片型号时,便会有“STC MCU Database”的选择项
6.输入完毕后点击菜单的File选项,在弹出的下拉菜单中选择“保存”命令存盘源程序文件,这时会弹出如下图所示的存盘源程序画面,在文件名栏内输入源程序的文件名,在此示范中把Text1保存成hello.c。主要Keil C51支持汇编和C语言,且uVision4要根据后缀判断文件的类型,从而自动进行处理,因此存盘时应注意输入的文件名应带扩展名.ASM或.C。源程序文件hello.c是一个c语言程序,如果用户想建立的是一个汇编程序,则输入文件名称hello.asm。保存完毕后请注意观察,保存前后源程序有哪些不同,关键字变成蓝颜色了吗?这也是用户检查程序命令行的好方法,您体会到了吗?
汇编语言接口技术实验二总结.
功能调用:PC机系统中有两层内部例行程序供用户使 用,即BIOS及DOS功能模块,这些例行程序均可被用 户通过中断调用指令使用。它们的入口地址都在中断向 量表中。DOS功能模块位于BIOS的上层,它对硬件的 依赖相对更少,因此一般汇编编程中多使用DOS功能 调用。 中断向量表:中断子程序的段地址及偏移地址的存放区 域。存放在存储器最低地址区域。(96页) 中断调用指令(71页): 格式:INT N 功能:①(FLAGS)→↓(SP),0→ IF、TF。 ②(CS) →↓(SP),(4*n+2) → CS。 ③(IP) →↓(SP),(4*n) → IP。
1.单字符输入(1号调用) 格式:MOV AH,1 INT 21H 功能:从键盘输入字符的ASCII码送入寄存器AL中, 并送显示器显示。 2.单字符显示(2号调用) 格式:MOV DL,待显示字符的ASCII码 MOV AH,2 INT 21H 功能:将DL寄存器中的字符送显示器显示。
DOS以中断调用INT 21H向用户提供了一组非常有用 的系统功能,规定以中断指令INT 21H进入总入口, 再为每个功能调用规定一个功能号以便进入相应的各 个子程序的入口。(99页)
DOS系统功能调用的方法一般可分为以下几步: ① 设置所要调用功能的入口参数。 ② 在AH寄存器中存入所要调用功能的功能号。 ③ INT 21H指令自动转入中断子程序入口。 ④相应中断子程序运行完毕,可按规定取得出口参数
实验2:编写大写字母转换小写并显示的程序,如果 输入的不是大写字母,需要重新输入。 (提示:A:41H; AH,1 INT 21H ;输入字符并存于AL中 CMP AL,41H JB START CMP AL,5AH JA START ;保证输入是大写字母 ADD AL,20H ;大小写转换 MOV DL,AL MOV AH,2 INT 21H ;将转换后结果输出
基于Emu8086和Proteus的《汇编语言和接口技术》课程仿真实验研究
基于Emu8086和Proteus的《汇编语言和接口技术》课程仿真实验研究作者:彭玄璋郑伟骆珍仪来源:《电脑知识与技术》2018年第17期摘要:该文针对《汇编语言与接口技术》在实验教学存在的问题,提出了基于Emu8086和Proteus仿真软件的虚拟实验教学方法;介绍了一个实验教学实例——使用Emu8086和Proteus仿真软件设计与实现的8253定时/计数器实验,通过实例说明Emu8086和Proteus仿真软件在该课程实验教学中的应用方法和仿真过程。
关键词:实验教学;仿真实验;微机接口;汇编语言中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0165-031 引言《汇编语言与接口技术》课程对于计算机、通信工程、物联网工程等专业的学生来说是一门重要的课程。
该课程又是一门理论性和实践性都很强的课程,因此必须加强理论教学和实验教学的结合。
通过实验促使学生能使用微处理器芯片及典型接口芯片设计出微机接口电路,加深对微处理器芯片和典型接口芯片特性的认识和理解,掌握微机接口电路设计的方法,接受一定的汇编语言编程训练,从而加强微机应用的工程实践能力。
在传统的《汇编语言与接口技术》实验教学中,采用的微机原理与接口技术实验箱由于其内部线路已经连好,没有给学生实际设计微机接口电路的机会,实验效果不是很理想。
再有就是实验设备成本高,容易损坏,维护困难,使用受到场地限制。
针对使用实验箱进行实验教学现状中的诸多限制,我们提出了一种基于EMU8086和PROTEUS的《汇编语言与接口技术》仿真实验的方法,通过使用PROTEUS7.9提供的VSM FOR 8086模块,利用虚拟仿真软件进行电路设计和仿真。
这一方法不仅完全取代了以往使用实验箱才能做《汇编语言与接口技术》实验,而且使用方便、快捷,可靠性高,节省投资。
2 虚拟实验使用的仿真软件简介Emu8086-Assembler and Microprocessor Emulator是一个可在Microsoft Windows 操作系统环境下运行的8086CPU汇编仿真软件。
汇编语言、微机原理、接口技术-八个实验(全)(DOC)
成绩:计算机原理实验室实验报告课程:汇编语言与微机原理**:**专业:计算机科学与技术学号:**********日期:2013-12-19太原工业学院计算机工程系实验一:输入输出实验四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)1.实现了一位十进制的加法2.实现两位十进制和的输出五.结论通过实验,初步了解emu8086仿真系统,能用汇编语言设计简单的程序我学会了简单的输入输出字符、对于的数据和计算的数据初步的理解。
实验二:分支程序实验实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.11.5 一.实验内容1.实现控制台输入输出2.实现两位十进制数猜数字游戏(基本要求:输入两位数和预设数值比较,对于输出>小于输出<等于输出=并退出)扩展要求:1.每次输出都换行2.显示远大于>>(大于两倍)和远小于<<(小于二分之一)二.理论分析或算法分析首先将被猜的数字设成30。
输入两位十进制数,放在al和bl并将其减去30h转换为数值型。
输入数字和被猜数值30比较,如果大于30,则跳转到j4,并输出“>”;如果小于30,则跳转到j3并输出“<”;如果等于,则输出“=”并结束程序。
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)五.结论完成了本次实验,并通过本次试验的,学会了控制输入输出。
通过对程序的设计学会了运用比较进行程序的跳转实验三:循环程序实验实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.11.12 一.实验内容3.实现内存数据访问4.用两种方法实现对五个字从大到小排序5.用冒泡法时实现快排二.理论分析或算法分析选择排序冒泡排序提取数组中的第一个数,与后一个数做比对,如果第一个数比第二个数小,则交换位置,否则位置保持不变,依次和后边的数作比较,循环操作。
汇编语言与接口技术实验
班级:计科143 姓名:张磊学号:20141111095实验成绩:课程:汇编语言与接口技术实验六同组者:肖洋,马畅实验日期:实验六显示接口实验一、实验目的1. 了解数码管动态显示与静态显示区别2. 掌握数码管动态显示控制原理3. 掌握数码管动态显示编程二、实验原理图6.1 LED数码管显示电路图6.1为实验板数码管显示电路,本实验板所用数码管为共阴极型,需要显示的数据通过74HC573进行锁存。
图中U6是数码管位选锁存器,数据通过数据总线送至U6后,经SEGLE(P27)进行置位实现锁存;U7是数码管段选码输出,段选码通过数据总线送至U7后通过DIGLE(P26)置位进行锁存。
三、实验内容使用定时器T0中断方式设计一个时钟表,用两位数码管分别显示时、分、秒。
1)分析本实验控制原理,画出程序流程图。
2)根据实验要求,编写系统程序,并在实验板上进行调试;班级:计科143 姓名:张磊学号:20141111095实验成绩:课程:汇编语言与接口技术实验六同组者:肖洋,马畅实验日期:四、实验分析及源程序#include "STC/STC15F2K60S2.H"#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit WEI_LATCH=P2^7;//数码管位选驱动锁存器锁存控制端sbit DUAN_LACTH=P2^6;//数码管段选驱动锁存器锁存控制端sbit LED_LATCH = P2^5;//led驱动锁存器控控制端sbit I2C_SCL = P2^0;sbit I2C_SDA = P2^1;uchar g_sec = 0;//存储秒uchar g_min = 0;//存储分uchar g_hour = 0;//存储小时uint int_time;//定时标志uchar uc_SegTable[] = //段选码{0x3f,0x06,0x5b,0x4f, /* 0、1、2、3 */0x66,0x6d,0x7d,0x07, /* 4、5、6、7 */0x7f,0x6f,0x77,0x7c, /* 8、9、A、B */0x39,0x5e,0x79,0x71, /* C、D、E、F */0x80,0x40,0x00 /* . 、- */};uchar uc_DigTable[] =//位选码{0xfe,0xfd,0xfb,0xf7,班级:计科143 姓名:张磊学号:20141111095实验成绩:课程:汇编语言与接口技术实验六同组者:肖洋,马畅实验日期:0xef,0xdf,0xbf,0x7f};void timer0_init();//定时器0初始化void DisplaySeg(uchar uc_SegDuan,uchar uc_SegWei,uchar uc_PointDisp);//数码管显示函数void Delay();//延时函数void TubeDisplay();//显示时间void main(){timer0_init();//定时器0初始化LED_LATCH = 1;P0 = 0xff;//消除LED干扰LED_LATCH = 0;//E2ReadByte(0x00);while(1){if(TR0 == 1)//时钟正常运行时显示时间TubeDisplay();//将时间显示到数码管}}void timer0_init(){TMOD=0x01;TH0=(65536-50000)/256; //=50000微秒=50毫秒班级:计科143 姓名:张磊学号:20141111095实验成绩:课程:汇编语言与接口技术实验六同组者:肖洋,马畅实验日期:TL0=(65536-50000)%256;EA=1; //开启总中断ET0=1; //打开定时器0中断TR0=1; //打开定时器0}void interserve(void ) interrupt 1{TR0=0; //关闭定时器T0int_time ++;if(int_time==20) //够20次中断,即1秒钟进行一次检测结果采样{int_time=0; //中断次数清0g_sec++; //秒加1if(g_sec==60){g_sec =0; //秒等于60就返回0,分钟金伟g_min++;if(g_min==60)//分等于60就返回0,小时进位{g_min=0;g_hour++;if(g_hour==24)//到24小时清0{g_hour=0;}}}班级:计科143 姓名:张磊学号:20141111095实验成绩:课程:汇编语言与接口技术实验六同组者:肖洋,马畅实验日期:}TH0=(65536-46083)/256; //重新给计数器T0赋初值TL0=(65536-46083)%256;TR0=1; //启动定时器T0}void DisplaySeg(uchar uc_SegDuan,uchar uc_SegWei,uchar uc_PointDisp) {if(1 == uc_PointDisp){/* 将段显示出来*/P0 = uc_SegTable[uc_SegDuan] | 0x80;DUAN_LACTH = 1;DUAN_LACTH = 0;/* 选择某位*/P0 = uc_DigTable[uc_SegWei];WEI_LATCH = 1;WEI_LATCH = 0;}else{/* 将段显示出来*/P0 = uc_SegTable[uc_SegDuan];DUAN_LACTH = 1;DUAN_LACTH = 0;/* 选择某位*/班级:计科143 姓名:张磊学号:20141111095实验成绩:课程:汇编语言与接口技术实验六同组者:肖洋,马畅实验日期:P0 = uc_DigTable[uc_SegWei];WEI_LATCH = 1;WEI_LATCH = 0;}}void Delay()//简单延时函数{uchar uc_Delay = 200;while(uc_Delay--);}void TubeDisplay(){DisplaySeg(g_hour / 10, 0, 0);//显示小时的十位Delay();DisplaySeg(g_hour % 10, 1, 1);//显示小时的个位,带小数点Delay();DisplaySeg(g_min / 10, 2, 0);//显示分的十位Delay();DisplaySeg(g_min % 10, 3, 1);//显示分的个位,带小数点Delay();DisplaySeg(g_sec / 10, 4, 0);//显示秒的十位Delay();DisplaySeg(g_sec % 10, 5, 0);//显示秒的个位,带小数点Delay();}班级:计科143 姓名:张磊学号:20141111095实验成绩:课程:汇编语言与接口技术实验六同组者:肖洋,马畅实验日期:五、实验结果及结论使用定时器T0中断方式设计一个时钟表,用两位数码管分别显示时、分、秒。
《汇编语言与接口技术》实验指导(2013版)
2、DEBUG 的常用命令
DEBUG 命令都是单字母命令,按照不同命令的格式其后可加上一个或多个参数, 若包含多个命令参数,其间用空格作为分隔符。DEBUG 命令不区分大小写。
(1)汇编命令 A
格式:A[起始地址] 功能:以汇编指令的形式输入代码,系统自动将汇编指令翻译成机器指令代码, 并从默认或指定地址单元开始存放。 若缺省起始地址,则从当前 CS:100 地址开始存放。A 命令按行汇编,主要是用 于小段程序的汇编或对目标程序的修改。 举例: 命令:A 含义:从默认地址输入汇编指令; 命令:A 1000:20 含义:从地址为 1000H:20H 的单元输入汇编指令; 命令:A CS:1000 含义:从 CS 段的 1000H 单元输入汇编指令;
(7)跟踪命令 T
格式:T[=起始地址][指令条数] 功能:从指定地址开始执行指定条数的指令,若省略指令条数,则默认执行一条 指令,若省略起始地址,则从当前 CS:IP 指示地址开始执行。 举例: 命令:T 含义:从当前位置单步执行 1 条指令; 命令:T 3 含义:从当前位置单步执行 3 条指令; 命令:T=0 含义:从 0 地址单步执行 1 条指令; 命令:T=4 2 含义:从 4 地址单步执行 2 条指令;
(2)汇编源程序,生成可执行文件
在保证工作目录下存在 ml.exe 文件和 link.exe 文件时, 可直接对汇编语言源程 序进行汇编连接,使用的命令如下(以 test.asm 文件名为例) : ml test.asm 若源程序无语法和逻辑错误,即可汇编连接成功,同时生成目标文件 test.obj 和可执行文件 test.exe。当源程序中存在语法错误时,汇编连接不会进行。若工作 目录下存在 ml.err 文件,则会显示包含错误存在行的提示信息,程序员可以依次来 判断错误所在。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级:计科143姓名:张磊学号:20141111095实验成绩:
课程:汇编语言与接口技术同组者:肖洋,马畅实验日期:
实验二I/O实验
一、实验目的
1. 掌握51单片机基本I/O接口使用
2. 掌握51单片机基本I/O接口软件编写
3. 熟悉基本软件编码规范
二、实验原理
本实验的所用的原理图如图2.1和图2.2所示。
LED0控制原理已在实验3-1中分析。
在图2.2中,蜂鸣器的控制信号BELL信号连接单片机的P4.5引脚,同时连接到PNP三极管的基极上,故当信号BELL为高电平时,三极管截止,BELL 不发声;当信号BELL为低电平时,三极管导通,BELL发声。
三、实验内容
在实验中,要求设计一个应用系统,当LED0闪烁时,蜂鸣器产生声音。
1)分析本实验控制原理,画出程序流程图。
2)撰写本实验C51程序,并在实验板上进行调试
班级:计科143姓名:张磊学号:20141111095实验成绩:
课程:汇编语言与接口技术同组者:肖洋,马畅实验日期:
四,实验代码
#include "STC/STC15F2K60S2.H"
#define uchar unsigned char
#define uint unsigned int
sbit LEDLE=P2^5;/*led驱动锁存器锁存控制端*/
sbit DIGLE=P2^6;/*数码管位选驱动锁存器锁存控制端*/
sbit SEGLE=P2^7;/*数码管段选驱动锁存器锁存控制端*/
sbit bell=P4^5;/*蜂鸣器控制端*/
void delay(uchar ms);
void delay1(uint ms);
/*主程序*/
void main()
{
/*将数码管的段选和位选关闭防止干扰*/
P0=0xFF;
LEDLE=1;
LEDLE=0;
P0=0x00;
DIGLE=1;
DIGLE=0;
SEGLE=1;
SEGLE=0;
while(1)
{
P0=0xFE;/*打开led0*/
LEDLE=1;
LEDLE=0;
bell=0;/*打开蜂鸣器*/
delay1(2000);
P0=0xFF;/*关led0*/
LEDLE=1;
LEDLE=0;
bell=1;/*关蜂鸣器*/
delay1(2000);
}
}
班级:计科143姓名:张磊学号:20141111095实验成绩:课程:汇编语言与接口技术同组者:肖洋,马畅实验日期:
/*延时程序,用于按键消抖及显示延时*/
void delay(uchar ms)
{
uchar j;
while(ms--)
{
for(j=0;j<125;j++);
}
}
/*延时程序,用于按键消抖及显示延时*/
void delay1(uint ms)
{
uint j;
while(ms--)
{
for(j=0;j<125;j++);
}
}
四、实验结果及结论
当LED0闪烁时,蜂鸣器产生声音。
班级:计科143姓名:张磊学号:20141111095实验成绩:
课程:汇编语言与接口技术同组者:肖洋,马畅实验日期:
五、实验总结
本次实验实现了在LED闪烁时,控制蜂鸣器响。