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

合集下载

微机原理及接口技术实验报告

微机原理及接口技术实验报告

《微机原理与接口技术》实验报告姓名:学号:班级:专业:电气工程及其自动化学院:电气与信息工程学院目录实验一数据传送 (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. 掌握运算类指令对各状态标志位的影响及测试方法。

微机原理实验报告

微机原理实验报告

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. 继续熟悉实验操作软件的环境及使用方法。

微机原理课程上机实验内容

微机原理课程上机实验内容

该课程在微机房实验共分为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的功能及特点。

微机原理实验报告资料

微机原理实验报告资料

微机原理实验报告班级:学号:姓名:实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在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
DI、SI)内容的变化。
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、

微机原理——数据传送实验

微机原理——数据传送实验

微机原理数据传送实验【实验目的】(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.掌握汇编应用程序的编辑和编译、调试和运的方法。

微机原理上机实验报告

微机原理上机实验报告

说明: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) 凯撒密码设计程序,输入一个字符串,按明文右移三位的移位加密方式,实现对字符串的凯撒加密,并将结果输出到屏幕上。

微机原理上机报告

微机原理上机报告

《微机原理》上机实验报告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的低四位中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,仅有该三个标志位变化
相关文档
最新文档