微机原理上机实验(一)实验报告数据传输传送实验
微机原理及接口技术实验报告
![微机原理及接口技术实验报告](https://img.taocdn.com/s3/m/bc3d798e55270722192ef7d7.png)
《微机原理与接口技术》实验报告姓名:学号:班级:专业:电气工程及其自动化学院:电气与信息工程学院目录实验一数据传送 (2)实验二算术运算 (4)实验三代码转换 (6)实验四程序的基本结构 (9)1、分支程序 (9)2、循环程序 (13)3、子程序 (16)实验五中断实验(8259) (19)实验六并行接口实验(8255) (25)实验七定时器/计数器实验(8235) (31)实验八D/A接口实验 (36)实验九A/D接口实验 (40)实验十串行通信实验 (43)实验一数据传送一、实验目的1. 掌握与数据有关的不同寻址方式。
2. 继续熟悉实验操作软件的环境及使用方法。
二、实验设备PC微机一台、TD-PIT + 或TD-PIT ++ 实验系统一套。
三、实验内容本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
四、实验步骤(1) 运行Tdpit 集成操作软件,编写实验程序。
(2) 编译连接无误后,进入调试环境,进行程序的调试。
按F8 键单步运行程序,执行完MOV DS,AX 语句后,观察DS 寄存器中出现的段地址。
如图1-1所示可以看出DS数据段中MSR源数据串"HELLO,WORLD!$"。
图1-1 进入调试环境(3)继续单步运行程序,执行MOV ES,AX 语句后,可以看数据段出现的段地址,用同样的方法可以查看ES:0000 的数据。
数据传输还没开始进行,此时ES 段的数据为空,如图1-1所示。
继续单步运行程序如图1-2可以看出数据正在逐渐的进入ES段中。
图1-2 DS源数据段数据(4)直到数据传输完毕,可以看到ES 数据段中目的数据串MSD 已经被写入了数据串"HELLO,WORLD!$"。
如图1-3所示。
图1-3 根据ES值查看附加段的数据实验二算术运算一、实验目的1. 掌握运算类指令编程及调试方法。
2. 掌握运算类指令对各状态标志位的影响及测试方法。
微机原理实验报告
![微机原理实验报告](https://img.taocdn.com/s3/m/503ab0b0312b3169a551a4d9.png)
2.1显示程序实验1.实验目的(1)掌握在PC机上以十六进制形式显示数据的方法。
(2)掌握部分DOS功能调用使用方法。
(3)熟悉Windows集成操作软件Tdpit的操作环境和操作方法2.实验设备PC微机一台、TD-PITD实验系统一套。
3.实验步骤和结果(1)编辑源代码STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES DB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$' MES1 DB 'Show 34H as hex:',0AH,0DH,'$'SD DB 15HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AXMOV DX,OFFSET MES MOV AH,09HINT 21HMOV DX,OFFSET MES1 MOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:[SI]AND AL,0F0HMOV CL,4SHR AL,CLCMP AL,0AHJB C2ADD AL,07HC2:ADD AL,30H MOV DL,AL MOV AH,02HINT 21HMOV AL,DS:[SI] AND AL,0FH CMP AL,0AHJB C3ADD AL,07HC3:ADD AL,30H MOV DL,AL MOV AH,02HINT 21HKEY:MOV AH,1 INT 16HJZ KEYMOV AX,4C00HINT 21HCODE ENDSEND START(2)实验结果图所示:2.2 数据传送实验1.实验目的1. 掌握与数据有关的不同寻址方式。
2. 继续熟悉实验操作软件的环境及使用方法。
微机原理课程上机实验内容
![微机原理课程上机实验内容](https://img.taocdn.com/s3/m/913c99cd0242a8956bece443.png)
该课程在微机房实验共分为4次,8个学时,两大部分实验内容,请每次预习下次试验内容,并把程序编好,再来上机调试!最后实验环节的成绩按上机实验时的表现和实验报告两部分相加,请认真对待!第一次实验第一部分汇编语言程序设计实验一熟悉、使用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的设置断点,单步执行等功能发现错误所在并加以改正。
练习一熟悉DEBUG程序的使用上机要求:一. 运用8086汇编语言,编辑两数排队的简单程序,文件名取为*.ASM。
二. 运用MASM.EXE文件进行汇编,直至正确,形成*.OBJ文件。
三. 运用LINK .EXE文件进行连接,形成*.EXE文件。
四. 认真阅读DEBUG中的命令与功能。
五. 运用DEBUG .EXE文件进行调试。
使用单步执行命令一-T两次,观察寄存器中内容的变化:使用查看存储器数据段命令一-D,观察存储器数据段内数值。
六. 再使用连续执行命令-→G,及使用查看存储器数据段命令一-D,观察存储器数据段内数值的结果是否符号要求。
七. 在以上步骤完成后,可以运用DEPUG中的其它命令,如N、L、u、A、R、Q 等等命令,以进一步了解DEBUG的功能及特点。
微机原理实验报告资料
![微机原理实验报告资料](https://img.taocdn.com/s3/m/09144b6dfe4733687e21aa2b.png)
微机原理实验报告班级:学号:姓名:实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序流程图图3-1四、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD3RETADDA ENDP CODE ENDSEND START五、实验结果分析我们计算的结果是:84256他们结果是一样的。
微机原理上机实验报告 实验报告1
![微机原理上机实验报告 实验报告1](https://img.taocdn.com/s3/m/f5c6bee44693daef5ef73d86.png)
5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。
二、实验内容(包括实验步骤和代码)
三、实验结果及其分析
55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,
在相对应的地址中直接输入数据即可。
4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式
运行程序,同时在工作区窗口的CommonRegister视图中查看本程序所使用的寄存器(CX、
《微机原理与接口技术》课程实验报告实验Biblioteka 称实验一数据传送姓名
系院专业
班级
学号
实验日期
指导教师
成绩
一、实验目的和要求
1、编写源程序,要求将数据段中3000H~30FFH单元的内容传送给6000H~60FFH单元
中。
2、编译、连接所编写的源程序。
3、执行程序前,利用存贮器窗口将DS:3000H~300FH中的数据改为11、22、33、44、
微机原理——数据传送实验
![微机原理——数据传送实验](https://img.taocdn.com/s3/m/252c7e910066f5335b8121b7.png)
微机原理数据传送实验【实验目的】(5分)1 学习汇编语言的数据传送的方法,练习一道综合题;2 掌握汇编应用程序的编辑和编译、调试和运行的方法。
【实验环境】(5分)1.实验设备:Windows 10 64位笔记本2.软件:Masm for Windows集成实验环境共享版2015 DOSBox 0.74【实验原理】(30分)将存储区BUF1中的内容复制到BUF2中,在数据区中定义源数据区BUF1变量,存放待传送的数据(字符串),在数据区中定义目的数据区BUF2变量,存放接收的数据(字符串),使用寄存器SI作为源地址指针,DI作为目标地址指针,每次传送一个字节的数据,AL用来存放传送的字节,CX用于记录数据个数,并作为循环变量。
通过一个循环进行字节传送,直到所有字节传送结束。
【实验内容】(50分)1.数据传送:【代码】DATA SEGMENTBUF1 DB'HELLO 18030213 $!'COUNT EQU $-BUF1BUF2 DB 20 DUP(?)DATA ENDSSTACK1 SEGMENT STACKDB 20 DUP(?)STACK1 ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK1,CS:CODESTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET BUF1 ;建立源地址指针MOV DI,OFFSET BUF2 ;建立目标地址指针MOV CX,COUNT ;字节数送入CX寄存器L1: MOV AL,[SI] ;取源数据一个字节送入AL中MOV [DI],AL ;将源数据送入目标地址单元中INC SIINC DIDEC CXJNZ L1 ;判断是否传送完毕CODE ENDSEND START【操作步骤】1.编译成目标文件2.生成可执行文件3.调试4.输入-u;–g=0 17;–d ds:000 –d ds:0010并查看结果【结果】运行后给出截图1,ds:0000H开始地址单元中内容(XXH)0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 48H 45H 4CH 4CH 4FH 20H 31H 38H- 30H 33H 30H 32H 31H 33H 20H 24H ds:0010H开始地址单元中内容(XXH)0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F21H 48H 45H 4CH 4CH 4FH 20H 31H- 38H 30H 33H 30H 32H 31H 33H 20H2.求和实验【代码】STACK SEGMENTDW1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20; 1-20个数STACK ENDSDATA SEGMENTCOUNT EQU 1NUM EQU 10DATA ENDSCODES SEGMENTASSUME CS:CODES,DS:DATA,SS:STACK START:MOV AX,STACKMOV SS,AXMOV SI,COUNT;下标从0开始MOV AX,0000H; 累计和初始为0MOV CX,0000H; 累计个数,从0开始LP1:MOV DX,[BP+SI];从数组中获取下标为SI的数ADD AX,DX ;累计求和INC SI ;下标增加2,因为是每个数是字长INC SIINC SI ;下标增加2,因为是每个数是字长INC SI ;下标增加2,因为是每个数是字长INC CX ;累计个数加1CMP CX,NUMJNZ LP1CODES ENDSEND START【操作步骤】1.编译成目标文件2.生成可执行文件3.调试4.输入-u;-g=0 1c;-d ss:0000【结果】运行后给出截图1,看AX中累加和是多少给出截图2,看ss段中是否存放了数组【实验结论】(10分)1.通过此次实验,了解了汇编语言的数据传送的方法.2.掌握汇编应用程序的编辑和编译、调试和运的方法。
微机原理上机实验报告
![微机原理上机实验报告](https://img.taocdn.com/s3/m/d0128b2ca32d7375a4178048.png)
说明:1. 将本文档改名为‚学号_姓名_班级_微机原理上机.doc‛,并按以下说明完成本次上机内容;2. 请各班课代表将本班上机作业收齐并压缩为‚微机原理_上机_班级.rar‛;3. 请课代表在第10周末(2014.5.4)前将本班上机作业发送到ustblili@12中,邮件标题为‚微机原理_上机_班级‛。
汇编语言开发工具使用简介① 打开‚轻松汇编‛应用程序,工作界面如下图所示:② 点击工具栏中的图标,将系统自动生成的汇编语言源程序文件更名并保存在合适的路径下;③ 在编辑区输入你编写的程序,并保存;④ 点击工具栏中的图标,进行编译。
如果源程序有误,在下方输出窗口提示错误信息,需要修改后再进行编译;如果无误,输出窗口提示‚编译成功‛;⑤ 点击工具栏中的图标,进行链接。
如果无误,输出窗口提示‚链接成功‛;⑥ 点击工具栏中的图标,运行程序;如有结果输出,即可在命令窗口中看到输出结果。
⑦ 如需调试程序,可设置断点后,点击工具栏中的图标,在界面左侧看到各寄存器的内容,如下图所示。
实验内容和实验要求 1.DOS 功能调用(1) 键盘输入屏幕显示编写程序,实现键盘输入屏幕显示实验。
即:当程序运行时,每从键盘输入一个字符,就在屏幕上显示一个字符,直到输入‚$‛字符,则退出程序。
程序源码:(请填入程序中缺失的部分)运行结果截图:(2) 输入小写字母输出大写字母编写程序,实现小写输入大写输出功能。
即:由键盘输入一个小写字母,在屏幕上显示一个与之对应的大写字母。
注意非小写字母输入的问题。
程序源码:(请填入程序中缺失的部分)CODE S EGMENTASSUMECS:CODE START: MOV AH, 1INT21HC MP A L,‛$‛ JNZ S TART MOVAH,4CH INT21HCODEENDS ENDS TART运行结果截图:CODE S EGMENT ASSUMECS:CODES TART:;代码段;****编写代码实现小写字母输入,大写字母输出功能**** M OV AH,1INT 21HCMPA L,’a’ J B STOP CMPA L,‘z’ J A STOP S U B A L ,20H M OV DL,AL M OV AH,2INT 21H;*******************自行编写代码结束*************** STOP:MOVAX,4C00H INT 21HCODEENDSEND S TART;退出程序(3) 凯撒密码设计程序,输入一个字符串,按明文右移三位的移位加密方式,实现对字符串的凯撒加密,并将结果输出到屏幕上。
微机原理上机报告
![微机原理上机报告](https://img.taocdn.com/s3/m/6dffce3567ec102de2bd89a1.png)
《微机原理》上机实验报告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的低四位中。
微机原理实验: 数据传送
![微机原理实验: 数据传送](https://img.taocdn.com/s3/m/33a2c0523c1ec5da50e270a8.png)
实验二数据传送一、实验目的1.熟悉8086指令系统的数据传送指令及8086的寻址方式。
2.利用Emulator仿真器来调试汇编语言程序。
二、实验预习要求1.复习8086指令系统中的数据传送类指令和8086的寻址方式。
2.按照题目要求预先编写好实验中的程序段。
三、实验任务1.通过下述程序段的输入和执行来熟悉Emulator仿真器的使用,并通过显示器屏幕观察程序的执行情况。
练习程序段如下:MOV BL,08HMOV CL,BLMOV AX,03FFHMOV BX,AXMOV DS:[0020H],BX2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。
压栈程序段如下:MOV AX,0102HMOV BX,0304HMOV CX,0506HMOV DX,0708HPUSH AXPUSH BXPUSH CXPUSH DX出栈程序段请自行编写(用不同的出栈顺序)。
3.指出下列指令的错误并加以改正,上机验证之。
(1) MOV [BX],[SI](2) MOV AH,BX(3) MOV AX,[SI][DI](4) MOV BYTE PTR[BX],2000H(5) MOV CS,AX(6) MOV DS,2000H4.①编写程序设置各寄存器及存储单元为如下内容:(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH②根据①中设置说明下列各条指令执行完后AX寄存器中的内容,并上机验证。
(1) MOV AX,1200H(2) MOV AX,BX(3) MOV AX,[0120H](4) MOV AX,[BX](5) MOV AX,0110H[BX](6) MOV AX,[BX][SI](7) MOV AX,0110H[BX][SI]5. 将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。
微机原理上机实验报告
![微机原理上机实验报告](https://img.taocdn.com/s3/m/a72e803ba36925c52cc58bd63186bceb19e8ed89.png)
微机原理上机实验报告实验一基本输入/输出实验:本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入/输出功能。
8255基本输入/输出实验参考接线图如图所示。
流程图:操作步骤:按图示连好线路,在TDPIT中输入如下程序,编译、连接、运行。
DATA SEGMENTCS0 EQU 300OHMY8255_A EQU CS0+00HMY8255_B EQU CS0+01HMY8255_C EQU CS0+02HMY8255_MODE EQU CS0+03HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV DX,3003HMOV AL,10000010BOUT DX,ALTEST_IT:MOV DX,3001HIN AL,DXMOV DX,3000HOUT DX,ALJMP TEST_ITCODE ENDSEND START实验现象:闭合开关,对应控制灯泡发光。
实验二流水线指示灯显示实验:首先分别将A口和B口写入7FH和FEH,然后分别将该数右移和左移一位,在送到端口上,这样循环下去,从而实现流水灯的显示。
8255流水灯显示实验参考接线图如图所示。
流程图:操作步骤:按图示连好线路,在TDPIT中输入如下程序,编译、连接、运行。
DATA SEGMENTCSO EQU 3000HA EQU CSO+0000HB EQU CSO+0001HC EQU CSO+0002HM EQU CSO+0003HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR AX,AXMOV AL,10000000BMOV DX,MOUT DX,AL;MOV DX,B;IN AL,DXL1:MOV AL,00001000BMOV DX,AOUT DX,ALMOV AL,00000001BMOV DX,BOUT DX,ALMOV CX,00FFHC1: MOV BX,CXMOV CX,0FFFFHD1:LOOP D1MOV CX,BXLOOP C1MOV AL,00000100BMOV DX,AOUT DX,ALMOV AL,00000010BMOV DX,BOUT DX,ALMOV CX,00FFHC2: MOV BX,CXMOV CX,0FFFFHD2:LOOP D2MOV CX,BXLOOP C2MOV AL,00000010BMOV DX,AOUT DX,ALMOV AL,00000100BMOV DX,BOUT DX,ALMOV CX,00FFHC3: MOV BX,CXMOV CX,0FFFFHD3:LOOP D3MOV CX,BXLOOP C3MOV AL,00000001BMOV DX,AOUT DX,ALMOV AL,00001000BMOV DX,BOUT DX,ALMOV CX,00FFHC4: MOV BX,CXMOV CX,0FFFFHD4:LOOP D4MOV CX,BXLOOP C4JMP L1MOV AX,4C00HINT 21HCODE ENDSEND START实验现象:灯泡如流水般从左至右依次流动发光,并始终保持在同一时间只有一个灯亮着。
微机原理实验报告
![微机原理实验报告](https://img.taocdn.com/s3/m/6eda0523a32d7375a5178014.png)
微机原理实验报告院别:物理与电子工程学院专业:指导老师:姓名:学号:实验一两个多位十进制数相加的实验一、实验名称数据传送及两个多位十进制数相加二、实验目的(1)学习数据传送和算术运算指令的用法。
(2)熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。
三、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
四、实验电路及连线(硬件实验)此实验属于软件实验,故无硬件实验的电路及连线。
五、程序说明(预习)包括程序功能,程序框图,算法说明及所用到的寄存器等。
功能:将被加数和加数分别显示,接着运行加法运算,然后将结果显示出来。
算法说明:①定义数据段:定义被加数和加数,且要使其用ASCII码以十六进制之间的转换;②定义堆栈段,并给SP_TOP单元赋初值0③定义代码段,并将源代码放在里面首先,编写主程序;接着,编写显示、回车换行和加法运算的子程序。
④程序结束。
所用到的寄存:AX、SS 、CS 、DS、 ES、SI、SP、DI六、程序框图七、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDS END START八、实验结果分析及截图这次试验依次将相加数和被相加数存入AL,BL,依次从低位向高位相加,然后把结果放在内存中,根据程序走向,相加的结果依次放在内存地址DS:0000到DS:0004的位置上,和我们实验预期结果一样。
微机原理数据传送的实验
![微机原理数据传送的实验](https://img.taocdn.com/s3/m/73304acfa1116c175f0e7cd184254b35effd1a7c.png)
微机原理数据传送的实验数据传送是微机原理中非常重要的一部分,它是指在微机系统中将数据从一个地方传送到另一个地方的过程。
数据传送分为内部数据传送和外部数据传送两种。
内部数据传送主要是指在微机系统内部进行数据传送,常涉及到寄存器和存储器之间的数据传输。
寄存器是微机系统中用于暂时存放数据的地方,而存储器则是用于永久存储数据的地方。
在微机系统中,数据的传输主要是通过总线来实现的。
总线是连接CPU、存储器和输入输出设备的一种通信线路。
数据传输通过总线分为三个步骤:地址传输、数据传输和控制传输。
首先是地址传输。
CPU通过地址总线将要访问的存储单元的地址发送给存储器。
存储器接收到地址后,将对应地址的数据准备好待传输。
然后是数据传输。
CPU通过数据总线将数据发送给存储器。
存储器接收到数据后,将数据写入相应的存储单元。
或者CPU从存储器中读取数据,存储器将所需的数据通过数据总线发送给CPU。
最后是控制传输。
控制传输是控制数据传输的信号传输。
在数据传输过程中,控制信号包括读使能、写使能、读取信号和写入信号等。
读使能信号用于告诉存储器将数据写入总线,写使能信号用于告诉存储器从总线读取数据。
读取信号和写入信号是为了使数据传输的时序正确。
除了内部数据传送,微机系统还需要和外部设备进行数据传送。
外部设备包括键盘、显示器、鼠标等。
外部设备与微机系统的数据传输需要通过接口电路来实现。
接口电路是把外部设备的数据格式转换成微机系统可识别的数据格式的电路。
通过接口电路,外部设备的数据可以传送到微机系统中,或者由微机系统的数据传送到外部设备中。
在外部数据传输中,数据传输方式主要有并行传输和串行传输两种。
并行传输是指多位数据同时传输的方式,而串行传输则是指一位一位地进行数据传输。
总之,数据传送是微机系统中非常重要的一个环节,它涉及到内部数据传送和外部数据传送。
在内部数据传送过程中,需要通过总线来进行地址传输、数据传输和控制传输。
而外部数据传送则需要通过接口电路将外部设备的数据格式转换成微机系统可识别的数据格式。
微机原理上机实验(一)实验报告数据传输传送实验
![微机原理上机实验(一)实验报告数据传输传送实验](https://img.taocdn.com/s3/m/9b8f224b3968011ca2009132.png)
微机原理上机实验(一)实验报告主题:数据传送一、实验目的熟悉星研集成环境软件的使用方法。
熟悉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为递增移动。
微机原理实验报告
![微机原理实验报告](https://img.taocdn.com/s3/m/a893d58e88eb172ded630b1c59eef8c75ebf9553.png)
微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。
实验一,微机系统组成及工作原理。
1.1 微机系统的组成。
微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。
其中,CPU是微机系统的核心部件,负责控制整个系统的运行。
1.2 微机系统的工作原理。
微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。
CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。
实验二,微机系统的组装和调试。
2.1 微机系统的组装。
在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。
组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。
2.2 微机系统的调试。
组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。
通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。
实验三,微机系统的应用。
3.1 微机系统的应用领域。
微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。
在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。
3.2 微机系统的发展趋势。
随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。
未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。
结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。
这对我今后的学习和工作将有很大的帮助。
微机原理与接口技术实验报告.
![微机原理与接口技术实验报告.](https://img.taocdn.com/s3/m/49af2c881a37f111f1855bf1.png)
实验一、认识Tddebug集成操作软件一.实验内容(一)实验题目:数据传送实验1. 编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
2. 修改此程序,采用字符串传送指令完成。
(二)实验目的:通过对该程序进行调试,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各个寄存器及数据区的内容。
(三)实验步骤:1. 运行Tddebug软件,选择Edit菜单编写实验程序2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。
3.使用Rmrun菜单中的Run运行程序,观察运行结果。
4.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各寄存器及数据区的内容。
过程如下:1)按F7单步执行,在代码区中有一个三角,表示正在执行的指令。
每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。
2)检查内存数据区的内容,关键是找出用户程序的数据段和附加段:●方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区●方法2:选择菜单View| Dump,弹出内存数据显示窗口。
3) 查看执行结果:按Alt+F5,切换到用户窗口。
5.更改数据区中的数据,考察、调试程序的正确性。
二.分析设计思想,绘制实验原理图、流程图。
汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。
三.程序清单及相关注释。
DDATA SEGMENT ;定义源数据段MSR DB "HELLO,WORLD!$"LEN EQU $- MSRDDATA ENDSEXDA SEGMENT ;定义附加数据段MSD D B LEN DUP(?)EXDA ENDSMYSTACK SEGMENT ;定义堆栈段STACK DW 20 DUP(?)MYSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DDATA,ES:EXDASTART: MOV AX,DDATAMOV DS,AX ;装载数据段寄存器MOV AX,EXDAMOV ES,AX ;装载附加数据段寄存器MOV SI,OFFSET MSRMOV DI,OFFSET MSDMOV CX,LENMOV BX,0NEXT: MOV AL,MSR[BX] ;开始传输数据MOV ES:MSD[BX],ALINC BXLOOP NEXTPUSH ESPOP DS ;将附加段寄存器指向的段值赋给数据段寄存器MOV DX,OFFSET MSDMOV AH,9INT 21H ;显示字符串MOV AH,4CHINT 21H ;返回DOS状态CODE ENDSEND START四.实验结果并分析。
微机原理上机实验
![微机原理上机实验](https://img.taocdn.com/s3/m/c083b51810a6f524ccbf856f.png)
2)基本指令的用法
在debug中输入各条基本指令并执行,观察指令的执行情况。
四、实验问题探讨
1. 2. 3. 4.
如何利用Debug去观察中断向量表? 机器复位后执行的第一条指令在哪儿?是什么指令? 在debug中输入16进制数时,需要键入H吗? 从当前位置开始执行指令到CS:0212H处,在Debug 中应该使用什么命令?
运行命令G
格式: 功能
G [=地址][地址[地址…]]
执行用户正在调试的程序,其中,地址为执行的 起始地址,以CS的内容作为段地址,以等号后面 的地址为偏移地址。后面的地址为断点地址。
命名命令N
格式:N 文件名 在调用DEBUG时,如果没有文件名,需要用N命令将
编译的的文件名格式化到CS:5CH的文件控制块中
实验2 简单程序的编制及汇编过程
一、实验目的:
1. 2. 掌握masm、link的基本用法 编制基本的宏汇编程序
3、能编制基本的宏汇编程序,能实现分支结构、循环结构
的程序编制。
4、熟悉汇编集成开发环境QTH。(可选)
二、实验设备:
QTH-2008PC实验设备一台,键盘、鼠标、显示器各
一件。
三、实验内容
8、可编程计数/定时器8253的使用 9、可编程中断控制器8259A的操作
10、综合实验
实验1
调试工具debug的使用及基本指令的用法
一、实验目的:
1、学习DEBUG常用命令的使用 2、了解程序运行的过程 3、熟悉所学指令的功能,给定指令,记录指令执行后的状态 4、了解上述各类指令对标志寄存器的影响
器语言
宏汇编程序在DOS下运行
MASM中的主要文件类型
汇编源程序(.ASM)
软硬件实验报告(微机原理与接口技术上机实验)
![软硬件实验报告(微机原理与接口技术上机实验)](https://img.taocdn.com/s3/m/bbfca831852458fb770b56a2.png)
实验一实验环境熟悉与简单程序设计实验目的(1)掌握DEBUG调试程序的使用方法。
(2)掌握简单程序的设计方法。
实验内容编程将BH中的数分成高半字节和低半字节两部分,把其中的高半字节放到DH中的低4位(高4位补零),把其中的低半字节放到DL中的低4位(高4位补零)。
如:BH=10110010B则运行程序后DH=00001011BDL=00000010B实验准备(1)熟练掌握所学过的指令。
(2)根据实验内容,要求预先编好程序。
实验步骤(1)利用DEBUG程序输入、调试程序。
(2)按下表要求不断地修改BH的内容,然后记录下DX的内容。
实验报告(1)给出程序清单。
(2)详细说明程序调试过程。
程序:CODE SEGMENTSTART : MOV BH,00111111BMOV AL,BHMOV CL,4SHR AL,CLMOV DH,ALMOV AL,BHAND AL,00001111B MOV DL,ALMOV CL,0CODE ENDSEND START实验二简单程序设计实验目的(3)掌握DEBUG调试程序的使用方法。
(4)掌握简单程序的设计方法。
实验内容试编写一个汇编语言程序,要求实现功能:在屏幕上显示:Hello worldMy name is Li Jianguo参考程序如下:(有错)data segmentout1 db 'Hello world'ax db 'My name is Li Jianguo'data enscode segmentassume cs:code;ds:datalea dx,out1mov ah,2int 21hmov dl,0ahmov ah,2int 21hmov dl,0dhmoo ah,2int 21hlea dx,axmov ah,int 21hcode ends实验步骤(3)利用IDE86程序输入、调试程序。
实验报告(3)给出正确的程序清单。
微机原理实验报告
![微机原理实验报告](https://img.taocdn.com/s3/m/7c65a99f77a20029bd64783e0912a21615797f60.png)
微机原理实验报告
一、实验目的
本次实验的主要目的是了解微机原理、学习微机的基础知识、技能和操作方法,还有熟悉微机实验室的使用方法。
二、实验过程
在实验室中,我们首先进行了掌握微处理器的基本指令集和编程技巧的实验。
通过对微处理器的学习,我们了解到了微处理器的组成结构和工作原理,同时也了解了微处理器的基础指令集,包括数据的传送、算术、逻辑、分支、循环指令等等。
接着我们进行了CPU总线实验。
通过对CPU总线的学习,我们了解了CPU读写内部和外部存储器的方法和原理。
同时,我们学习了编写程序来控制CPU读写存储器等。
最后,我们进行了8255并行接口控制实验。
通过学习并实践8255并行接口控制实验,我们了解了接口及其编程。
三、实验结果
在实验中,我们成功地掌握了微处理器的基本指令集和编程技巧,了解了微处理器的组成结构和工作原理,同时掌握了CPU总
线实验和8255并行接口控制实验。
在实验中不仅增长了专业知识,而且也培养了我们的实验能力,并进一步增强了我们的实践能力。
四、实验心得
通过这次实验,我们意识到,要想成为一名优秀的计算机专业
人才,必须首先打牢微机原理的基础,通过大量的实践和实验,
来应用理论知识,深入了解计算机底层的数据处理方式以及处理
器和存储器的工作原理。
只有这样才能够在日后工作中运用自如,并且在以后的学习和研究中更具备竞争力。
在以后的学习中,我将持续学习和实践,不断探索和发现,提
升自身的能力,为未来的发展做好充分的准备。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关寄存器的变化已记录在上一步中的注释中。
实验最终结果是:DS:3000到DS:30FF内存中的数据被复制到DS:6000到DS:60FF的内存中。
五、思考题
子程序Move中为什么比较SI、DI?
比较SI和DI的目的是:
如果SI小于DI,则执行递减操作,设SI=3000H,DI=6000H,即从30FFH开始复制到60FFH,直至3000H复制到6000H
DW100 DUP()
_STACKENDS
DATASEGMENT
DATAENDS
CODESEGMENT
STARTPROCNEAR
ASSUMECS:CODE, DS:DATA, SS:_STACK
MOVAX, DATA;将数据段的地址存入AX寄存器。AX=004DH
MOVDS,AX;对DS段寄存器赋值。DS=004DH
MOVCX,100H;把100H送到CX寄存器。CX=0100H
MOVSI,3000H;把3000H送到SI寄存器。SI=3000H
MOVDI,6000H;把6000H送到DI寄存器。DI=6000H
CLD;将DBiblioteka 标志位置0。设置SI、DI为递增移动,DF=0
REPECMPSB;比较[SI]和[DI],CX减1,ZF=0或CX=0跳出
微机原理上机实验(一)实验报告
主题:数据传送
一、实验目的
熟悉星研集成环境软件的使用方法。熟悉Borland公司的TASM编译器
熟悉8086汇编指令,能自己编写简单的程序,掌握数据传输的方法。
二、实验内容
1、熟悉星研集成环境软件。
2、编写程序,实现数据段的传送、校验。
三、实验代码
_STACKSEGMENTSTACK
Move1:REPMOVSB
;将[DS:SI]的值赋给[ES:DI],SI和DI持续递减1,CX减1,当CX=0时跳出循环
Return:RET
;返回(返回CALL Move的下一行)CX=0000H,SI=2FFFH,DI=5FFFH
MoveENDP
STARTENDP
CODEENDS
ENDSTART
JZReturn;如果相等,跳到Return
JNBMove1;如果SI大于等于DI,跳到Move1
ADDSI,CX;SI=SI+CX。SI=3100H
DECSI;SI减1。SI=30FFH
ADDDI,CX;DI=DI+CX。DI=6100H
DECDI;DI减1。DI=60FFH
STD;设置SI、DI为递减移动。DF=1
如果SI大于DI,则执行递增操作,设SI=6000H,DI=3000H,即从6000H开始复制到3000H,直至60FFH复制到30FFH
MOVES,AX;对ES段寄存器赋值。ES=004DH
NOP;空指令
MOVCX,100H;把100H送到CX寄存器。CX=0100H
MOVSI,3000H;把3000H送到SI寄存器。SI=3000H
MOVDI,6000H;把6000H送到DI寄存器。DI=6000H
CALLMove;调用Move子程序
;若ZF=0或CX=0不成立,则继续比较。SI和DI持续递增1
JNEERROR;若ZF=0,跳到ERROR子程序
TRUE:JMP$;跳到目前地址
ERROR:JMP$;跳到目前地址
MovePROCNEAR;Move子程序
CLD;将DF标志位置0。设置SI、DI为递增移动。DF=0
CMPSI,DI;比较SI、DICF=SF=PF=1,仅有该三个标志位变化