微机原理与接口技术实验指导 4_循环程序设计实验
微机原理与应用综合实验—循环程序设计
94 A2:PUSH AX 95 MOV DL,' ' 96 MOV AH,2 97 INT 21H 98 POP AX 99 ADD AX,BX 100 SHL AX,1 101 RET 102 A3:PUSH AX 103 MOV DL,' ' 104 MOV AH,2 105 INT 21H 106 POP AX 107 SUB AX,BX 108 SHL AX,1 109 RET 110 111 RET 112 CHRAC ENDP 113 MOV AH,4CH 114 INT 21H 115 CODE ENDS 116 END MAIN
45 ;********************************************** 46 INPUTPRO PROC NEAR 47 PUSH CX ;保护现场 48 PUSH AX 49 PUSH BX 50 SHL AX,1 ;得到每一行输入的字符(‘*’、‘ ’)总数 51 MOV CX,0001H 52 LOP:CALL CHRAC 53 INC CX ;CX自加 54 CMP CX,AX 55 JNA LOP;判断相等就换行 56 POP BX 57 POP AX ;恢复现场 58 POP CX 59 RET 60 INPUTPRO ENDP 61 ;********************************************** 62 ;子程序:输入每一个‘*’和‘ ’和0AH(换行字符) 63 ;********************************************** 64 CHRAC PROC NEAR 65 CMP CX,AX 66 JZ A1; 67 MOV DL,'*' 68 69 SHR AX,1 ;满足空格的条件 70 SUB AX,BX 71 CMP CX,AX 72 JNA A2 73 ADD AX,BX 74 ADD AX,BX 75 CMP CX,AX 76 JNB A3 77 78 SUB AX,BX 79 SHL AX,1 80 PUSH AX 81 MOV AH,2 82 INT 21H 83 POP AX 84 RET 85 A1:PUSH AX 86 MOV DL,0DH 87 MOV AH,2 88 INT 21H 89 MOV DL,0AH 90 MOV AH,2 91 INT 21H 92 POP AX 93 RET
微型计算机循环程序设计实验
深圳大学实验报告
课程名称:微机原理与接口技术
实验项目名称:循环程序设计实验
学院:信息工程学院
专业:电子信息工程
指导教师:骆剑平
报告人:罗沛鸿学号:2012130294 班级:电子3班实验时间:
实验报告提交时间:
循环程序设计实验
实验目的:
1:加深对循环结构的理解
2:掌握循环结构程序设计的方法以及调试方法
实验设备:
PC机一台,TD-PITE实验装置或TD-PITC实验装置一套实验内容与步骤:
实验结果:
实验结论:
由此次试验,基本掌握了分支程序设计实验与循环程序设计实验,分支程序设计实验重点在于E命令与D指令的运用以及DX的使用,循环设计实验重点在于对循环结构的清晰认识,读懂程序。
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
微机原理与接口技术实验指导书
微机原理与接口技术实 验 指 导 书吉林大学仪器科学与电气工程学院2010年12月吉林大学仪器科学与电气工程学院微机原理与接口技术实验指导书目 录第一章 软件实验部分 (2)实验一显示程序与数据传送实验 (2)实验二数码转换程序实验 (6)实验三运算类指令编程实验 (8)第二章 硬件实验部分 (11)实验四8/32位I/O接口实验 (11)实验五8255并口控制器应用实验 (15)实验六8259中断控制器实验 (18)实验七8254定时/计数器应用实验 (22)实验八16550串行控制器应用实验 (327)实验九8237DMA控制器应用实验 (26)实验十A/D转换与D/A转换实验 (39)附录A TD-PIT++实验系统硬件介绍 (43)附录B TDPIT集成操作软件介绍 (46)第一章 软件实验部分本章主要通过实验来学习80X86的指令系统、寻址方式以及程序的设计方法,同时掌握集成操作软件Tdpit的使用。
实验一显示程序与数据传送实验1、实验目的1)掌握在PC机上以十六进制形式显示数据的方法。
2)掌握部分DOS功能调用使用方法。
3)掌握与数据有关的不同寻址方式。
3)熟悉Windows集成操作软件Tdpit的操作环境和操作方法。
2、实验设备PC微机一台、TD-PIT++实验系统一套。
3、实验内容及说明1.显示程序实验一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。
本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并利用DOS功能调用完成一些提示信息的显示。
通过本实验,初步掌握实验系统配套操作软件的使用。
实验中所使用DOS功能调用(INT 21H)说明如下。
(1) 显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2) 显示字符串入口:AH=09H调用参数:DS:DX=串地址,’$’为结束字符(3) 键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4) 返回DOS系统入口:AH=4CH调用参数:AL=返回码2.数据传送实验本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
华南理工大学微机与接口实验报告(四实验,题目原理流程图代码截图完整版)
微机原理实验报告班 级:2012级电子科学与技术卓工班级电子科学与技术卓工班姓 名: 黄中一黄中一 学 号: 201236460273序 号:评阅分数:评阅分数:实验一一、实验目的1、学会如何建立汇编源文件ASM2、学会调用MASM 宏汇编程序对源文件进行汇编,获得目标程序宏汇编程序对源文件进行汇编,获得目标程序 OBJ 及LST 列表文件列表文件3、学会调用LINK 连接程序汇编后的目标文件OBJ 连接成可执行的文件连接成可执行的文件EXE 4、学会使用DEBUG 调试程序把可执行文件装入内存并调试运行,用D 命令显示目标程序,用U 命令对可执行文件反汇编,用G 命令运行调试。
命令运行调试。
二、实验设备装有MASM 软件的IBM PC 机三、实验内容1、汇编程序对源程序进行编译,生成扩展名为OBJ 的目标文件;连接程序是将目标程序和库文件进行连接、定位,生成扩展名为EXE 的可执行文件;调试程序是对目标文件进行调试,验证它的正确性。
是对目标文件进行调试,验证它的正确性。
2、DEBUG 程序各种命令的使用方法程序各种命令的使用方法功能功能命令格式命令格式 使用说明使用说明显示内存单元内容显示内存单元内容D 地址地址从指定地址开始显示40H 个字节或80H 个字节个字节 修改内存单元内容修改内存单元内容 E 地址地址先显示地址和单元内容等待输入修改的内容输入修改的内容检查和修改寄检查和修改寄存器的内容存器的内容R 显示全部寄存器和标志位及下条指令单元十六进制数码和反汇编格式和反汇编格式反汇编反汇编U 地址地址从指定地址开始反汇编16个或32个字节个字节 汇编汇编 A 地址地址从指定地址直接输入语句并从指定指定汇编装入内存从指定指定汇编装入内存跟踪跟踪 T =地址=地址 从指定地址开始逐条跟踪指令运行运行 G =地址=地址无断点,执行正在调试的指令执行正在调试的指令 退出退出Q退出DEBUG 返回DOS3、实验过程①、在edit 环境,写字板,记事本等中输入源程序。
微机原理与接口技术 4循环
MOV SUM,AX
MOV CN,BX ;送结果
MOV AH,4CH
INT 21H
;返回DOS
ENDS
END START
2.多重循环程序设计
(混合控制法)
【例3】编写程序实现下列功能:统计 一个字符串对应的ASCII码串中二进制 “1”的个数。
【分析】 这需要循环嵌套,外循环对n个字符进行
循环操作,内循环对每个字符中的“1” 统计。
数据变大怎么办?
1.单循环程序设计
(条件控制法)
【例2】编写程序完成求1+2+3+……N的累 加和,直到累加和超过1000为止。统计被累 加的自然数的个数送CN单元,累加和送SUM。
【分析】 • 用寄存器处理比较快速。因为结果要求 送两种数,可分别用AX、BX操作。
DATA DATA
SEGMENT SUM DW ? CN DW ? ENDS
CODE START:
SEGMENT
ASSUME CS:CODE,DS:DATA
MOV AX,DATA
MOV DS,AX
;初始化
MOV AX,0
;0送AX
MOV BX,0
;0送BX
LP: CODE
INC BX
;BX加1
ADD AX,BX ;求累加和
CMP AX,1000 ;条件控制
JBE LP
;≤1000转
三、循环控制的方法
(1)计数控制法 (2)条件控制法 (3)混合控制法
1.单循环程序设计
(计数控制法)
【例1】设有两个长度为8个字节的无符号数分 别存放在以NUM1、NUM2为首地址的连续的内 存单元中,将两个数相加,并将结果存入SUM 内存单元中。
微机原理与接口技术-实验指导书
《微机原理与接口技术》实验指导书主编教师:授课班级:目录实验一顺序结构程序实验【实验目的】【实验重点及难点】【实验环境】【实验内容】实验二分支结构程序实验【实验目的】【实验重点及难点】【实验环境】【实验内容】实验三单重循环结构程序实验【实验目的】【实验重点及难点】【实验环境】【实验内容】实验四多重循环结构程序实验【实验目的】【实验重点及难点】【实验环境】【实验内容】实验五子程序实验(一)【实验目的】【实验重点及难点】【实验环境】【实验内容】实验六子程序实验(二)【实验目的】【实验重点及难点】【实验环境】【实验内容】实验七字符处理程序实验(一)【实验目的】【实验重点及难点】【实验环境】【实验内容】实验八字符处理程序实验(二)【实验目的】【实验重点及难点】【实验环境】【实验内容】实验一顺序结构程序实验【实验目的】1、熟悉Masm for Windows 集成实验环境软件。
2、熟悉DEBUG有关命令的使用方法。
3、通过实际操作,掌握顺序结构程序的设计方法。
4、通过实际操作,熟悉利用DEBUG修改参数、检查结果的方法。
5、通过实际操作,熟悉汇编语言源程序的编辑、汇编、连接及调试过程。
【实验重点及难点】1、DEBUG有关命令的使用方法。
2、顺序结构程序的设计方式。
3、利用Masm for Windows 集成实验环境软件运行简单的程序段。
【实验环境】Window xp操作系统,Masm for Windows 集成实验环境。
【实验内容】(一)、实验步骤1、打开Masm for Windows 集成实验环境软件。
2、新建一个ASM文件,编写一个求平均值程序,假设两个数分别存在X 单元和Y单元中,求得的平均值存放在Z单元中。
3、保存后对其进行汇编及连接,产生.EXE文件。
4、用DEBUG对.EXE文件进行调试运行。
5、学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
6、运行完毕,关闭Masm for Windows 集成实验环境软件。
《微机原理与接口技术》实验指导书
《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求✧实验一实验系统及仪器仪表使用与汇编环境✧实验二简单程序设计实验✧实验三存储器读/写实验✧实验四简单I/0口扩展实验✧实验五8259A中断控制器实验✧实验六8253定时器/计数器实验✧实验七8255并行口实验✧实验八DMA实验✧实验九8250串口实验✧实验十A/D实验✧实验十一D/A实验✧实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了目前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。
可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。
为配合使用EL型微机教学实验系统而开发的8086调试软件,可以在WINDOWS 2000/XP等多种操作系统下运行。
在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。
该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。
经常使用的功能均备有热键,这样可以提高程序的调试效率。
一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。
旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。
系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。
《微机原理与接口技术》实验指导书
微机原理与接口技术实验指导书实验一:微处理器概述及数据传输实验一、实验目的•了解微处理器的基本概念和工作原理;•学习数据传输的基本知识;•掌握使用微处理器进行数据传输的方法。
二、实验器材•1个微处理器开发板;•1个串行通信模块;•相应的连接线。
三、实验内容在该实验中,你将学习如何使用微处理器进行数据传输,具体实验步骤如下:1.将开发板和串行通信模块连接起来;2.将数据发送器连接到串行通信模块的发送端口,将数据接收器连接到串行通信模块的接收端口;3.通过开发板上的开关设置要发送的数据;4.通过串行通信模块将数据发送到计算机;5.在计算机上使用相应的软件接收数据,并验证接收到的数据是否正确。
四、实验步骤1.将开发板和串行通信模块连接起来,确保连接正确并稳定;2.将数据发送器插入串行通信模块的发送端口,将数据接收器插入串行通信模块的接收端口;3.在开发板上的开关上设置要发送的数据;4.打开计算机上的串行通信软件,配置正确的串口号和波特率;5.点击软件的接收按钮,准备接收数据;6.在开发板上的开关上切换到发送模式,并观察串行通信模块的指示灯是否正常闪烁;7.在串行通信软件上观察接收到的数据是否与设置的数据一致;8.如果数据传输正常,则实验完成。
五、实验注意事项1.连接线务必稳固连接,确保数据传输正常;2.阅读并理解实验器材的使用说明书;3.注意保持实验环境的整洁,避免影响实验结果;4.在进行数据传输时,确保计算机已正确安装了相应的驱动程序。
六、实验总结通过这次实验,我们初步了解了微处理器的基本概念和工作原理,学习了数据传输的基本知识,并掌握了使用微处理器进行数据传输的方法。
我们在实验中成功地连接了开发板和串行通信模块,并成功地进行了数据传输。
通过实验,我们发现数据传输过程中需要注意连接线的稳固连接,以及计算机是否安装了相应的驱动程序。
实验的结果验证了我们的操作方法的正确性,同时也为后续实验奠定了基础。
注意:本指导书旨在引导实验过程,实验过程中如有任何危险情况,请立即停止实验并寻求实验室管理员的帮助。
《微机原理与接口技术》实验指导书2005-9
《微机原理与接口技术》实验指导书2005-9微机原理与接口技术实验指导书方义秋编著计算机综合实验中心2005年8月实验要求 (3)第一部分微机原理及汇编程序设计 (4)实验一、认识Tddebug集成操作软件 (4)实验二、I/O程序设计 (9)实验三、分支程序设计 (11)实验四、循环程序设计 (13)实验五、运算类程序设计 (15)实验六、代码转换程序设计 (19)实验七、宏指令应用 (24)实验八、字符串处理 (26)实验九、数据表格处理 (28)实验十、子程序及软中断程序设计 (29)第二部分接口部分实验 (33)实验十一、PC机内部8259中断应用 (33)实验十二、PCI总线中断应用 (39)实验十三、8254定时/计数器应用 (45)实验十四、8255并行接口应用 (53)实验十五、交通灯控制 (58)附录一TD-PIT-B实验系统的硬件环境 (60)2预习实验内容1.明确本次实验目的及任务,了解和掌握实验所需的理论知识及相关接口芯片的工作原理。
2.通过阅读示例程序,掌握编程方法及相关技巧。
3.对每次实验,选择其中一个项题目自己设计编写程序。
实验过程1.带上理论课教材、实验指导书及准备的实验程序。
2.若为接口电路,请关闭电源搭接线路,检查无误后,再开电源。
3.调试程序,记录结果。
4.实验结束后,请关闭电源,将各实验器材归位,清洁自己的桌面。
编写实验报告1.实验题目。
2.分析设计思想,绘制实验原理图、流程图。
3.程序清单及相关注释。
4.分析实验结果。
5.说明在实验过程中遇到了哪些问题,是如何处理的。
6.收获体会,不足之处和今后应注意的问题等。
注意事项1.实验以前,应确保PCI总线扩展卡与实验箱间扁平电缆连接的正确性。
2.实验前后应仔细检查实验箱,防止导线、元件等物品落入装置内,导致线路短路、元件损坏。
3.爱护实验设施,插接、拔取排线时,手握白色插头,不得从线中间拉取。
4.实验箱电源关闭后,不能立即重新开启。
微机原理与接口技术实验指导_4_循环程序设计实验
循环程序设计实验2.4.1 实验目的1、掌握循环程序的设计方法。
2、掌握比较指令、转移指令和循环指令的使用方法。
3、进一步掌握调试工具的使用方法。
2.4.2 实验预习要求1、复习比较指令、条件转移指令和循环指令。
2、复习循环程序的结构、循环控制方法等知识。
3、读懂“2.4.3 实验内容”中给出的将十进制数转换为二进制数以及将二进制数转换为十进制数的程序。
4、根据“2.4.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。
5、从“2.4.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.4.3 实验内容计算1+2+……n=,其中n通过键盘输入。
要求在屏幕上提供如下信息:Please input a number(1627): ;出现此信息后通过键盘输入一个小于628的无符号整数1+2+…..n=sum;其中n为用户输入的数,sum为所求的累加和程序运行情况如下图所示(说明:图中所运行程序允许累加和不大于一个32位二进制数所能表示的范围)。
1、编程指导(1)键盘输入的十进制数如368在计算机中是以33H,36H,38H形式存放的,如何将它们转换为一个二进制数0B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题。
将键盘输入的十进制数转换为二进制数的程序清单如下:DATA SEGMENTINF1 DB "Please input a number (0-65535):$"IBUF DB 7,0,6 DUP()DATA ENDSCODE S EGMENTASSUME CS: CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, OFFSET INF1MOV AH, 09HINT 21HMOV DX, OFFSET IBUF ;键入一个十进制数(<65535)MOV AH, 0AHINT 21HMOV CL, IBUF+1 ;十进制数的位数送CXMOV CH, 0MOV SI, OFFSET IBUF+2 ;指向输入的第一个字符(最高位)MOV AX, 0 ;开始将十进制数转换为二进制数AGAIN: MOV DX, 10 ; ((010+a4) 10+…) 10+a0MUL DXAND BYTE PTR [SI], 0FHADD AL, [SI]A DC AH, 0I NC SILOOP AGAINMOV AH, 4CHINT 21HCODE ENDSEND START本程序功能:从键盘接收一个无符号十进制整数(小于65535),将其转换为二进制数,转换结果存在AX寄存器中。
微型计算机与接口技术 循环结构程序设计
实验四循环结构程序设计1.一、实验目的:1、掌握循环结构程序设计的基本方法。
2、掌握循环程序中重复控制指令的使用。
3、掌握循环结构程序设计的组成部分和基本结构形式。
二、上机实验指导:在数据段中有如下数据区,统计该数据区中正数,0,负数的个数。
VARDB2,-3,0,5,-7,0,0,8,6,-9参考程序如下:(程序名:EX71.ASM)data segmentvar db 2,-3,0,5,-7,0,0,8,6,-9xx db ?;存正数个数yy db ?;存负数个数zz db ?;存零个数data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov ah,0;AH存正数个数mov al,0;AL存负数个数mov bh,0;BH存零个数mov si,offset varmov cx,xx-var;CX数据个数go:cmp byte ptr[si],0jz zerojns plusinc aljmp nextzero:inc bhjmp nextplus:inc ahnext:inc siloop gomov xx,ah;将个数存入存储单元mov yy,almov zz,bhmov ah,4chint 21hcode endsend startC:\MASM\DEBUGEX71.EXE-U;反汇编2CA2:0000B8A12CMOVAX,2CA12CA2:00038ED8MOVDS,AX2CA2:0005B400MOVAH,002CA2:0007B000MOVAL,002CA2:0009B700MOVBH,002CA2:000BBE0000MOVSI,00002CA2:000EB90A00MOVCX,000A2CA2:0011803C00CMPBYTEPTR[SI],002CA2:00147407JZ001D2CA2:0016790AJNS00222CA2:0018FEC0INCAL2CA2:001AEB08JMP00242CA2:001C90NOP2CA2:001DFEC7INCBH2CA2:001FEB03JMP0024—U2CA2:002190NOP2CA2:0022FEC4INCAH2CA2:002446INCSI2CA2:0025E2EALOOP00112CA2:002788260A00MOV[000A],AH2CA2:002BA20B00MOV[000B],AL2CA2:002E883E0C00MOV[000C],BH2CA2:0032B44CMOVAH,4C2CA2:0034CD21INT21-g=0 32AX=0403BX=0300CX=0000DX=0000SP=0000BP=0000SI=000ADI=0000DS=2CA1ES=2C91SS=2CA1CS=2CA2IP=0032NVUPEIPLNZNAPENC2CA2:0032B44CMOVAH,4C-d 0000 000f;10个数据后存个数,分别为4,3,32CA1:0000 02FD0005F9000008-06F7040303000000.....三、实验步骤1、上机调试、运行实验指导中的参考程序。
微机接口实验:分支和循环的程序设计
实验四分支程序设计实验一、实验目的1、掌握分支程序的结构。
2、掌握分支程序的设计、调试方法。
二、实验设备TDN86/88教学实验系统一台三、实验内容及步骤1、设计一数据块间的搬移程序设计:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。
源数据块和目的数据块在存储中可能有三种情况,数据的传送从数据块的首址开始,或者从数据块的末址开始均可。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏,可以得出以下结论:当源数据块首址>目的块首址时,从数据块首地址开始传送数据。
当源数据块首址<目的块首址时,从数据块末地址开始传送数据。
实验程序如下:STACK1 SEGMENT STACKDW 64 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV CX,0010HMOV SI,3100HMOV DI,3200HCMP SI,DIJA A2ADD SI,CXADD DI,CXDEC SIDEC DIA1: MOV AL,[SI]MOV [DI],ALDEC SIDEC DIDEC CXJNE A1JMP A3A2: MOV AL,[SI]MOV [DI],ALINC SIINC DIDEC CXJNE A2A3: JMP A3CODE ENDSEND START实验步骤:(1)阅读程序,画出程序流程图。
(2) 输入源程序,进行编译、链接和加载。
(3) 用E命令在以SI为起址的单元中填入16个数。
(4) 运行程序并检查结果,用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同。
(5)试改变SI、DI的取值,观察在三种不同的数据块情况下程序的运行。
将SI,DI的首地址改成:MOV SI,3100HMOV DI,3108H执行结果:程序执行完后,将SI所指向的数据块传给了DI所指向的数据段,分步执行时可以发现程序执行是从程序段的末地址开始的。
微机原理及接口技术实验指导书
微机原理及接口技术实验指导书2010年9月信息学院实验中心微机实验室第一章 80X86微机原理及其程序设计(软件部分)实验一软件程序设计(1.熟悉PC机的使用和调试汇编程序的方法2.简单程序设计)一.实验目的:1.掌握汇编程序由编辑、编译、链接到调试的全过程。
2.通过汇编调试工具加深对机器指令执行过程的了解。
3.利用汇编调试工具加深对机器指令和伪指令的了解二.实验要求:1.了解 PC 机的系统类型和基本配置, 熟悉 PC 机 DOS和 WINDOWS下的基本操作。
2.掌握使用 UltraEdit 等编辑器对汇编语言源程序 (存储后扩展名为.ASM)的编辑操作。
3.学会用宏汇编程序 MASM (或TASM)对.ASM文件进行编译(编译后扩展名为.obj)。
4.使用链接程序LINK(或TLINK)对.OBJ 文件链接生成 .EXE 文件。
5.学会用汇编调试工具软件TD(或DEBUG)对.EXE文件进行调试进一步深对机器指令的了解、执行程序、检查运行结果的方法。
6.简单程序是构成复杂程序的基础。
简单程序又称顺序程序,顾名思意,就是为完成一简单的目的,采用一串指令序列,按顺序逐条执行。
在简单程序执行过程中,每条指令只执行一次,同时由于没有转移,一般不考虑对标志的影响。
象所有汇编程序设计一样,编程前,应考虑如何分配 CPU 中的寄存器和内存中单元等,要考虑到指令本身的特点和要求分配寄存器,例如,如果希望使用乘法指令进行乘法,根据指令的要求,必须要使用 AL 或 AX 作为被乘数,在这种情况下,AL或AX 就必须考虑为存放被乘数,当然,乘积应该是放在AX或DX:AX 中。
1.掌握汇编程序的基本结构及设计方法,包括:A 汇编语言源程序结构B 基于汇编级的解题算法C 寄存器和存储器的内容分配D 简单汇编程序的设计E 返回系统的方法2.掌握对自编程序的调试及出错修改的方法,包括:A 汇编程序的编辑、编译、链接及调试B 在调试程序过程中发现语法错误的处理方法C 在调试程序过程中如何发现逻辑错误及处理方法3.利用调试工具软件对课堂中讲授的机器指令、伪指令、操作符、运算符等内容加深了解三.实验仪器:PC 机一台四.实验内容:汇编程序的编程环境有以下二种方式:1. Dos窗口下命令行方式2. UltraEdit方式其中第一种Dos方式,是指进入Dos窗口模式编辑源文件,用命令行方式直接调用Tasm,Masm等编译工具进行程序的编译、链接、调试,而后两种工作方式都是在Windows下进行源文件的编辑,而编译和链接仍然是通过调用Tasm,Masm等编译工具完成相应工作。
微机原理及接口技术实验指导书
微机原理及接口技术实验指导书书写实验名称时请按下表内容填写:实验一、熟悉实验运行环境实验一、实验目的1、熟悉汇编语言程序的调试环境2、掌握部分DEBUG命令二、实验内容编写一个汇编语言程序,计算1+2+3+…+99+100,并将结果存入SUM字单元。
通过调试程序熟悉汇编语言的上机操作过程及部分命令。
三、上机操作过程1、建立ASM文件(编辑源程序)使用编辑程序EDIT在磁盘上建立源程序EX.ASM例如:D:\MASM>EDIT EX.ASM用MASM程序产生OBJ文件源文件建立后,就要用汇编程序对源文件汇编,汇编后产生二进制的目标文件(OBJ文件)例如:D:\MASM>MASM EX3 、用LINK程序产生EXE文件汇编程序已产生出二进制的目标文件(OBJ),但OBJ文件并不是可执行文件,还必须使用连接程序(LINK)把目标文件转换为可执行的EXE文件例如:D:\MASM>LINK EX4、调试运行在建立了EXE文件后,就可以直接从DOS执行程序。
如果用户程序有错误或者没有直接将结果在终端上显示出来,程序执行完之后无法看见正确的结果。
那么怎么知道程序执行的结果是正确的呢?此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,得到正确的结果。
这里就要使用调试程序。
例如:D:\MASM>DEBUG EX.EXE①R命令显示或修改寄存器中的内容例如:_R BXBX 0369:059E不作修改,直接回车;否则键入修改内容,并回车②U命令反汇编a、_U[地址] 从指定地址开始,反汇编32个字节。
如果地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节b、_U[范围] 对指定范围的内存单元进行反汇编例如:_U 04BA:0100 0108③T命令单步执行命令(一次执行一条指令)例如:从代码段的0000H处开始单步执行_R IPIP XXXX: 0000_T④G命令执行命令(执行多条指令)_G 地址1 地址2表示从地址1开始执行指令到地址2结束例如:从代码段的0000H处开始连续执行指令,知道0013H处_R IPIP XXXX: 0000_G 0013⑤D命令显示内存单元的内容a、_D 地址b、_D 范围例如:显示数据段中0000H开始的若干个字节单元的内容_D DS:0000例如:显示数据段中0000H到0010H各字节单元的内容_D DS:0000 0010⑥E命令修改存储单元的内容例如:修改数据段0002H字节单元的内容为0FFH_E DS:0002XXXX:0002 XX FF⑦Q命令退出DEBUG程序实验二、分支程序设计一、实验目的1、掌握分支程序的结构形式2、掌握分支程序的设计方法 二、实验内容1、计算分段函数,X 为8位带符号数2、算法分析先将X 的范围确定在-10≤x ≤20之内,除此之外结果全为0,然后计算X+5,再根据结果的符号求绝对值。
微机原理实验(循环程序设计)
教
师
评
阅
教师签字年月日
备注:1.文件名命名方式为:学号+姓名+实验序号.DOC
2.将文件按附件形式添加后提交
DATA SEGMENT
DB 06H,12H,88H,82H,90H,22H,33H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DI,0000H
MOV CL,[DI]
XOR CH,CH
MOV BL,CH
INC DI
A0: MOV AL,[DI]
TEST AL,80H
JE A2
INC BL
A2: INC DI
LOOPA0
MOV [DI],BL
MOV AX,4C00H
INT 21H
CODE ENDS
END START
实
验
步
骤
(1)用编辑软件如:EDIT,输入源程序,并保存,后缀名为.ASM。
-U ;先用反汇编来查看源程序装入的地址和数据段的地址
:
-G=xxxx:xxxx;从程序装入的地址处,开始运行程序
(5)查看实验结果。
(6)也可使用EMU8086软件进行调试
骤
实
验
分
析
与
总
结
1.通过实验掌握了宏汇编命令的基本格式及对循环结构的理解。
2.熟悉并掌握了循环结构程序设计的方法。
2.求某数据区内负数的个数。
设数据区的第一个单元存放数据的个数,从第二个单元开始存放数据,在最后一个单元存放结果。
微机原理与接口技术实验指导书
微机原理与接口技术实验指导书电气工程实验教学中心目录实验预备知识 .................................................................................................. 错误!未定义书签。
第一部分汇编语言程序设计上机操作过程............................... 错误!未定义书签。
第二部分TDEBUG软件的使用说明 ......................................... 错误!未定义书签。
软件实验部分 .................................................................................................. 错误!未定义书签。
第一部分指令系统 ...................................................................... 错误!未定义书签。
实验1.1 寻址方式 ...................................................................... 错误!未定义书签。
实验1.2 算术运算指令(一) ........................................................ 错误!未定义书签。
实验1.3 算术运算指令(二) ........................................................ 错误!未定义书签。
实验1.4 十进制调整指令 .......................................................... 错误!未定义书签。
实验1.5 逻辑运算指令 .............................................................. 错误!未定义书签。
微机原理及接口技术实验报告
微机原理及接口技术实验报告一、实验目的本实验旨在通过掌握微机原理和接口技术的实验操作,实践相关理论知识,加深对微机原理和接口技术的理解。
二、实验设备和材料1.计算机主机2.操作系统3.接口卡4.编程软件三、实验原理微机原理是指通过学习微机的结构、功能和工作原理,从硬件层面掌握微机的基本知识。
接口技术是指连接不同设备之间的通信和数据交换技术,通过学习接口技术可以实现设备的互联和数据的传输。
四、实验步骤1.将接口卡插入计算机主机的扩展槽中。
2.启动计算机,并加载操作系统。
3.打开编程软件,编写实验程序。
4.将编写好的程序烧录到接口卡中。
5.连接外部设备和接口卡,并确认连接正确无误。
6.运行程序,并观察外部设备和接口卡之间的数据交互情况。
7.分析实验结果,并记录实验数据。
8.关闭程序和计算机。
五、实验结果及分析通过实验我们成功连接了外部设备和接口卡,并实现了数据的传输和交互。
在程序运行过程中,我们观察到外部设备正常工作,并且与接口卡之间的通信稳定可靠。
根据实验数据分析,我们可以得出接口卡的性能良好,并且能够满足实际应用需求。
六、实验心得通过这次实验,我对微机原理和接口技术有了更深入的理解。
实践操作让我加深了对硬件设备和软件编程的认识,掌握了实现设备互联和数据传输的基本方法。
在实验过程中,我遇到了一些问题,如接口卡的插入和连接问题,但通过查阅资料和请教老师同学,最终成功解决了这些问题。
我发现实验不仅帮助我巩固了理论知识,也提高了我的实践能力和解决问题的能力。
总结起来,微机原理和接口技术是计算机相关专业的基础课程之一,通过实验的方式学习可以更好地将理论知识与实际应用相结合。
我相信通过不断的实践和学习,我会在微机原理和接口技术方面有进一步的提高和发展。
《微机原理与接口技术》课程实验指导书
《微机原理与接口技术》课程实验指导书一、课程的目的、任务本课程是电子科学、测控技术专业学生在学习微机原理课程间的一门实践性技术基础课程,其目的在于通过实验使学生能更好地理解和掌握基本微机原理,培养学生理论联系实际的学风和科学态度,提高学生的硬件操作实验技能和分析处理实际问题的能力。
为后续课程的学习打下基础。
二、课程的教学内容与要求三.各实验具体要求见P2四、实验流程介绍学生用户登陆进入实验系统的用户名为:学号(如D205001200XX),密码:netlab详细操作步骤见P4五、实验报告请各指导老师登陆该实验系统了解具体实验方法,并指导学生完成实验。
学生结束实验后应完成相应的实验报告并交给指导老师。
其中实验报告的主要内容包括:实验目的,实验内容,实验记录数据,数据分析与处理等。
实验一基本操作一、实验目的1.熟悉Netlab MCS-51单片机实验系统的设置和使用方法2.掌握基本MCS-51软件的编写、修改和编译的方法3. 熟悉在Netlab MCS-51单片机实验系统环境下进行软件调试的方法4. 学会检查、设置片内片外存储器和寄存器的内容,丰富软件调试的手段二、实验内容1. 输入参考程序,存储、编译该程序2. 在进行实验前,设置程序中需要的初值三、参考程序从内部RAM 20H单元开始存放一组带符号数,字节个数存在1FH中。
请统计出其中大于0、等于0和小于0的数的数目,并把统计结果分别放入one、two和three三单元。
ONE EQU30HTWO EQU31HTHREE EQU32HORG0000HAJMP MAIN ;MAIN starts from 0030HORG0030HMAIN: MOV1FH ,#03H ;Init the data that you wants to process MOV20H ,#00HMOV21H ,#01HMOV22H ,#0FFHMOV R0,#20H ;Init the data that you wants to processMOV ONE,#00HMOV TWO,#00HMOV THREE,#00HLOOP: MOV A,@R0JZ ZEROJB ACC.7 ,NEGINC ONESJMP CHKZERO: INC TWOSJMP CHKNEG: INC THREECHK: INC R0DJNZ1FH ,LOOPHERE: NOPEND实验二程序设计实验一、实验目的1. 进一步熟悉指令系统,提高编程能力2. 掌握算术运算、数制转换、极值查找、检索、数据块排序和转移等程序的设计方法3. 熟悉循环程序、子程序、分支程序的编写和调试方法二、实验内容用汇编语言在编译器中编写以下小程序,实现相应的功能。
实验四 分支和循环程序设计实验(设计性实验)
内存0770:0000到0007存有字节型字符串,0008中的值07H就是字符串的长度; 0009到0015存有字型字符串,0017中的05H是该字符串的长度;
五、心得体会
这次实验内容所用到的方法基本是在之前实验中就有用到过的,只不过在学习了循环之
后再编得得程序相比之前的实验程序更加简练,逻辑性更强。通过这次练习,我对这些跳转 指令也运用的更加熟练和灵活。用熟这些指令我认为是编好汇编程序的基础,毕竟一个像样 的程序是少不了使用循环的。合理的运用才能编出好程序。
INC CMP JNZ MOV MOV MOV DEC DEC DEC L2:
SI STRING1[SI],'$' ;判断字符是否为'$' L1 LENGTH1,CX ;循环结束时CX为字符串个数 SI,0 CX,0 CX SI SI
INC CX INC SI INC SI CMP STRING2[SI],'$' ;判断字符是否为'$' JNZ L2 MOV LENGTH2,CX ;循环结束时CX为字符串个数 MOV AH,4CH INT 21H CODES ENDS END START 程序结果:
MOV AL,NB IMUL NB MOV BX,AX MOV AL,NA IMUL NC MOV CX,4 IMUL BX CMP BX,AX JS NONE INC TAG MOV AL,TAG NONE: MOV AH,4CH INT 21H CODES ENDS END START 运行结果:
JMP SHURU DA: MOV DL,DAXIE MOV AH,2 INT 21H JMP SHURU XIAO: MOV DL,XIAOXIE MOV AH,2 INT 21H JMP SHURU FINISH: MOV AH,4CH INT 21H CODES ENDS END START 程序结果:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4 循环程序设计实验
2.4.1 实验目的
1、掌握循环程序的设计方法。
2、掌握比较指令、转移指令和循环指令的使用方法。
3、进一步掌握调试工具的使用方法。
2.4.2 实验预习要求
1、复习比较指令、条件转移指令和循环指令。
2、复习循环程序的结构、循环控制方法等知识。
3、读懂“2.4.3 实验内容”中给出的将十进制数转换为二进制数以及将二进制数转换为十进制数的程序。
4、根据“2.4.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。
5、从“2.4.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.4.3 实验内容
计算1+2+……n=?,其中n通过键盘输入。
要求在屏幕上提供如下信息:
Please input a number(1 627): ;出现此信息后通过键盘输入一个小于628的无符号整数
1+2+…..n=sum;其中n为用户输入的数,sum为所求的累加和
程序运行情况如下图所示(说明:图中所运行程序允许累加和不大于一个32位二进制数所能表示
的范围)。
1、编程指导
(1)键盘输入的十进
制数如368在计
算机中是以
33H,36H,38H
形式存放的,如
何将它们转换为
一个二进制数
101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题。
将键盘输入的十进制数转换为二进制数的程序清单如下:
DA TA SEGMENT
INF1 DB "Please input a number (0-65535):$"
IBUF DB 7,0,6 DUP(?)
DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DA TA
START: MOV AX, DA TA
MOV DS, AX
MOV DX, OFFSET INF1
MOV AH, 09H
INT 21H
MOV DX, OFFSET IBUF ;键入一个十进制数(<65535)
MOV AH, 0AH
INT 21H
MOV CL, IBUF+1 ;十进制数的位数送CX
MOV CH, 0
MOV SI, OFFSET IBUF+2 ;指向输入的第一个字符(最高位)
MOV AX, 0 ;开始将十进制数转换为二进制数
AGAIN: M OV DX, 10 ;((0⨯10+a4) ⨯10+…) ⨯10+a0
MUL DX
AND BYTE PTR [SI], 0FH
ADD AL, [SI]
A DC AH, 0
I NC SI
LOOP AGAIN
MOV AH, 4CH
INT 21H
CODE ENDS
END START
本程序功能:从键盘接收一个无符号十进制整数(小于65535),将其转换为二进制数,转换结果存在AX寄存器中。
(2)累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数。
将二进制数转换为十进制数的程序清单如下:
DA TA SEGMENT
OBUF DB 6 DUP(?)
DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DA TA
START: MOV AX, DA TA
MOV DS, AX
MOV BX, OFFSET OBUF+5
MOV BYTE PTR [BX],'$'
MOV CX, 10 ;做(DX):(AX)/10运算
LOOP1: MOV DX, 0 ;被除数高16位清0
DIV CX
ADD DL, 30H ;将DL中的一位十进制数转换为ASCII码
DEC BX
MOV [BX], DL
OR AX, AX
JNZ LOOP1
;判断商是否为0,不为0继续
MOV DX, BX
MOV AH, 09H
INT 21H
;显示转换得到的十进制数
MOV AH, 4CH
INT 21H
CODE ENDS
END START
本程序功能:将存储在AX寄存器中的二进制数转换为十进制数并显示。
2、流程图及程序框架 (1)流程图 (2)程序框架
DA TA SEGMENT INF1 DB "Please input a number (0-65535):$"
IBUF
DB 7,0,6 DUP(?)
OBUF DB 6 DUP (?)
DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DA TA START: MOV AX, DA TA
MOV
CX, AX MOV AX, 0
MOV BX, 1 LOOP2: ADD AX, BX INC BX
LOOP
LOOP2
CODE ENDS END START
2.4.4 实验习题
1、 从自然数1开始累加,直到累加和大于60000为止,显示累加的自然数的个数和累加和。
显示格式为:1+2+…+n=sum
其中n 为累加个数,sum 为累加和。
2、 从键盘输入6个加数N 1、N 2、N
3、N
4、N 5和N 6(均为1
4位的无符号十进制整数),求和并将计算结果在屏幕上显示出来。
3、 从键盘输入一个无符号十进制整数(小于65536),将其转换为二进制数,统计该二进制数中包含的1的个数,并将统计结果在屏幕上显示出来。
4、 从键盘输入N 个无符号十进制整数(小于256),将其转换为二进制数后存放在字节变量BUF 存储区中;对这N 个数进行由大到小排序,排序后将其仍存储在BUF 中;最后将排序后的结果在屏幕上显示出来。
2.4.5 实验报告要求
1、补全“2.4.3 实验内容”中源程序框架内未写出的程序代码,并说明你在调试该程序过程中遇到了哪些问题,是如何处理的;请考虑,如果输入的数大于627会出现什么问题?如何解决?
2、从“2.4.4 实验习题”中任选一道题目,画出流程图,编写源程序,并说明在调试过程中遇到了哪些问题,是如何处理的。
3、写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。