微机原理实验报告清零程序
- 格式:docx
- 大小:34.15 KB
- 文档页数:16
单片机清零程序实验心得嘿,朋友们!今天咱来聊聊单片机清零程序实验心得。
这玩意儿啊,就像是一场奇妙的冒险!你想想,单片机就像是一个小脑袋瓜,里面装着各种程序和数据。
而清零程序呢,就像是给这个小脑袋瓜来一次大扫除,把那些乱七八糟的东西都清理掉,让它重新变得干干净净、清清爽爽。
在做这个实验的时候啊,可得小心翼翼的,就跟走钢丝似的。
你得仔细检查每一个步骤,每一条代码,生怕有个小失误就前功尽弃啦!这感觉就像是在小心翼翼地拼凑一幅拼图,错了一块可就不完美了呀!做实验的过程中,有时候会遇到一些小挫折,哎呀,那真叫一个郁闷!就好像明明看到目的地就在眼前了,却突然被一块石头绊了一跤。
不过没关系呀,咱爬起来拍拍屁股继续干!这就是实验的乐趣所在嘛,不经历风雨怎么见彩虹呢?我记得有一次,我就犯了个小糊涂,把一个代码写错了,结果程序怎么都运行不起来。
我那叫一个着急啊,抓耳挠腮的,就像一只热锅上的蚂蚁。
但是我没放弃呀,我静下心来,一点一点地排查错误,嘿,还真让我给找到了!那种成就感,简直没法形容,就像中了大奖一样开心!还有啊,在实验中一定要有耐心。
这可不是一蹴而就的事情,得慢慢来,一步一个脚印。
就跟盖房子似的,得先打好基础,才能盖出漂亮的大楼。
如果心急火燎的,那肯定是要出问题的呀!而且哦,和小伙伴们一起做实验那就更有意思啦!大家可以互相讨论,互相帮助,一起攻克那些难题。
这可比自己一个人闷头苦干有趣多了呀!大家一起出谋划策,就像一群小侦探在破解谜团一样,多好玩!通过这个单片机清零程序实验,我真的学到了好多东西。
我学会了怎么去仔细地分析问题,怎么去耐心地解决问题,还学会了怎么和别人合作。
这可都是宝贵的经验啊!总之呢,单片机清零程序实验就像是一个充满惊喜和挑战的宝库,只要你用心去挖掘,就一定能收获满满的宝藏!大家都快去试试吧,相信你们也会爱上这个有趣的实验的!别犹豫啦,赶紧行动起来吧!。
实验一清零程序7000H-70FFHMOV A,#00HMOV DPTR ,#7000HMOV R1,#00HLOOP: MOVX @DPTR ,AINC DPTRDJNZ R1,LOOPSJMP $END实验二拆字程序把7000H拆开高位放在7001H低放在7002HORG 0000HMOV DPTR, #7000HMOVX A, @DPTRMOV B,ASWAP AANL A,#0FHINC DPTRMOVX @DPTR ,AINC DPTRMOV A,BANL A,#0FHMOVX @DPTR ,ASJMP $END实验三数据传送子程序把(R2,R3)源RAM区首地址内的(R6,R7)个字节数据传送到(R4,R5)ORG 0000HMOV R2,#60HMOV R3,#00HMOV R4,#70HMOV R5,#00HMOV R6,#0FHMOV R7,#0FFHMAIN:MOV DPH,R2MOV DPL,R3MOVX A,@DPTRMOV DPH,R4MOV DPL,R5MOVX @DPTR,ACJNE R3,#0FFH,YINC R2Y:INC R3CJNE R5 ,#0FFH,MDINC R4MD :INC R5CJNE R7 ,#00H,SZ1CJNE R6 ,#00H ,SZ2SJMP $SZ1:DEC R7SJMP MAINSZ2:DEC R7DEC R6SJMP MIANEND实验五、查找相同数个数在7000H-700FH中查出几个字节是零…….. 外部:ORG 0000HMOV R0,#10HMOV R1,#00HMOV DPTR,#7000HLOOP:MOVX A,@DPTRCJNE A,#00H,LOOPINC R1LOOP1:INC DPTRDJNZ R0,LOOPMOV 30H,R1SJMP $END内部:ORG OOHMOV R2,.#10HMOV R0,#30HMOV R1,#00HLOOP:MOV A,@R0SJNE A,#00H,NEXTINC R1NEXT:INC R0DJNZ R2,LOOPMOV 40H,R1SJMP $END硬件实验一P3.3输入、P1口输出看L1-L8发光二极管的亮灯状况ORG 0000HMOV A,#00HMOV P1,ALOOP:JB P3.3,LOOPLACALL DELAYJB P3.3,LOOPLOOP1:JNB P3.3,LOOP1LACALL DELAYINC AMOV P1,AAJMP LOOPDELAY:MOV R6,#00HMOV R7,#FFHDJNZ R7,,$DJNZ R6,DELAYRETEND实验三并行I/O口8255扩展(红绿灯)MOV A,#80HMOV DPTR,#FF2BHMOVX @DPTR,ASTART:MOV DPTR,#0FF29HMOV A,#09HMOVX @DPTR,AINC DPTRMOV A,#24HMOVX @DPTR,AACALL DELAYSTART1:MOV DPTR,#0FF29HMOV A,#01HMOVX @DPTR,AINC DPTRMOV A,#86HMOVX @DPTR,AACALL DELAYMOV R1,#3START2: MOV DPTR,#0FF29HMOV A,#01HMOV @DPTR,AINC DPTRMOV A,#45HMOVX @DPTR,AACALL DEL YSDJNZ R1,S2MOV DPTR,#0FF29HMOV A,#0CHMOVX @DPTR,AINC DPTRMOV A,#30HMOVX @DPTR,AACALL DELAYMOV R1,#3S3: MOV DPTR,#0FF29HMOV A,#6AHMOV @DPTR,AINC DPTRMOV A,#28HMOVX @DPTR,AACALL DEL YSMOV DPTR,#0FF29HMOV A,#08HMOVX @DPTR,AINC DPTRMOV A,#20HMOVX @DPTR,AACALL DELYSDJNZ R1,S3JMP START1 DELYS:MOV R6,#00H DELY1:MOV R7,#00HDJNZ R7,$DJNZ R6,DEL Y1RETDELYA:MOV R5,#100D02:MOV R6,#100D03:MOV R7,#100DJNZ R7,$DJNZ R6,D03DJNZ R5,D02RETEND实验七串并转换实验ORG 0000HAJMP MAINORG OOOBHAJMP INT-T0MAIN :MOV SP ,#7FHMOV TMOD ,#01HMOV TH0,#4BHMOV TL0,#00HMOV SCON ,#00HMOV R0 ,#00HMOV R1 ,#20SETB TR0SETB ET0CLR TICLR RISETB EASJMP $INT-T0 :MOV TH0,#48HMOV TL0,#00HDJNZ R1 ,EXITMOV R1,#20MOV DPTR ,#TABMOV A ,R0MOVC A,@A+DPTRCLR TIMOV SBUF ,AINC R0CJNZ R0, #0AH ,EXITMOV R0 ,#00HEXIT :RETITAB :DB 0FCH 60H DAH F2H 66H B6H BEH E0H FEH F6H END。
实验一清零程序1、实验目的掌握8088汇编语言程序设计和调试方法,熟悉键盘操作。
2、实验内容把RAM区内4000H~40FFH单元的内容清零。
3、程序框图4、实验步骤用连续或单步方式运行程序,检查4000H~40FFH中执行程序前后的内容变化。
5、思考假使把4000H~40FFH中的内容改成FF,如何修改程序。
实验二:拆字程序一、实验目的(5分钟)掌握汇编语言程序设计的方法及程序调试方法。
二、实验内容把4000H的内容拆开,高位送4001H低位,低位送4002H低位,4001H和4002H的高位全部清零,一般本程序用于把数据送显示缓冲区时用。
三、程序流程四、实验步骤1、LED环境(1)在P.状态下按“0—EV/UN”,装载实验所需的代码程序。
(2)在P.状态下按键入3020,然后按STEP或EXEC进入入实验项目的调试与运行。
2、PC环境在与PC联机状态下,编译、连接、下载PH88\se02.asm,用连续或单步方式运行程序。
3、在单步运行时,每走一步可观察其运行结果。
在连续运行状态下,应按“暂停图标”或试验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查4000H~4002H中执行程序前后的内容变化。
实验三数据区移动1、实验目的掌握RAM中的数据操作。
2、实验内容把4100H源RAM区首地址内的16字节数据传送到4200H目标RAM区。
3、设计思想程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。
源数据块和目的数据块在存储器中可能有三种情况,如下图:对于两个数据分离的情况,如图(a),数据的传送从数据块的首地址开始,或者从数据块的末地址开始均可。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。
可以得出如下结论:当源数据首址>目的块首址时,从数据块首址开始传送数据。
当源数据首址<目的块首址时,从数据块末址开始传送数据4、程序框图5、实验步骤调试运行入口地址为3060H的程序,检查4100H~410FH中内容是否和4200H~420FH中内容完全一致。
图1 图2
实验二 清零程序
1.实验方式:
模拟调试
2.实验内容:
把外部RAM (XDATA )的2000-20FFH RAM 空间置零
3.实验器材:
已经安装了KEIL Uv2集成调试环境软件的计算机 1 台
4.程序框图:
5.实验步骤:
(1) 编写程序并编译通过。
(2) 进入调试状态, 点击工具栏中“ ”打开Memory 窗口,在Memory1“Address ”
位置上输入“X:2000H ”,显示如下图1,把光标移到2000H 的单元上,点鼠标右键,在开出的窗口中选择“Modify Memory at X:0X002000”,然后出现如下图2的窗口,在这里边输入一个数据,如95H 。
同样的方法,修改2001H-20FFH 单元内容。
(3) 按单步键,可以看到Memory#1窗口2000H 开始的单元的变化。
(4) 修改程序把4000H-5000H 中内容置55H 。
《微机原理与接口技术》课程实验报告
一、实验目的和要求
实验目的:掌握汇编语言设计和调试方式;
实验要求:通过本实验,掌握8051汇编程序设计以及仿真实验的流程及方法。
二、实验环境
DVCC单片机仿真实验系统独立工作以及连PC机。
三、实验内容及实施
【实验内容】把50H~5FH单元的内容清零。
【源程序】
【实验步骤】
DVCC仿真实验系统连PC机时
(1)连接好相应的实验线路;
(2)在闪动“P.”状态,按PCDBG键;
(3)在PC机处于在Win95/98软件平台下,单击DVCC图标;
(4)在系统设置选项中设定仿真模式应设定为内程序、外数据;
(5)根据屏幕提示进入51/96动态调试菜单;
(6)连接DVCC实验系统;
(7)装载目标文件;
(8)设置PC起始地址;
(9)从起始地址开始连续运行程序;
(10)调出外部数据窗口,检查50H~5FH单元的内容是否全部被清零。
四、实验结果
五、实验讨论
通过8051汇编程序的设计、编译及运行,调出外部数据窗口,我们可以观察到从50H~5FH单元的内容已经被全部清零。
刚开始我们并没有做到全部单元清零,后来通过不断地调试错误和运行,实现了实验目的。
通过本次实验,掌握了汇编语言的设计,实现了清零操作,并且熟悉了仿真实验系统的键盘操作以及基本仿真软件的使用。
微机原理的实验报告一、实验目的本实验旨在深入理解微机原理的相关知识,并通过实践操作,掌握微机原理的实验方法与技巧。
二、实验内容1. 搭建微机实验系统:根据实验所需,搭建适当的微机实验系统,包括各种硬件设备的连接与设置。
2. 硬件接口的实验:通过连接不同的硬件接口,进行实验操作,学习硬件接口的使用方法和原理。
3. 程序设计与调试实验:使用相应的汇编语言或高级语言,编写程序并进行调试,观察程序的执行结果。
4. 中断实验:通过调用不同的中断服务例程,进行实验操作,学习中断的使用原理和应用场景。
三、实验步骤与结果1. 实验步骤:(1) 搭建微机实验系统:按照实验指导书的要求,连接各种硬件设备,确保能够正常工作。
(2) 硬件接口的实验:选择一个硬件接口,例如并行口,通过编写相应的程序,实现读取和输出数据的功能。
观察实验现象并记录。
(3) 程序设计与调试实验:根据实验要求,选择适当的编程语言,编写相应的程序,并进行调试。
观察程序的执行结果,并记录相关数据。
(4) 中断实验:选择一个中断服务例程,例如键盘中断,通过编写相应的程序,实现对键盘输入的响应。
观察实验现象并记录相关数据。
2. 实验结果:(1) 硬件接口的实验结果:通过编写程序并连接硬件接口,成功读取和输出数据,实现了相应的功能。
(2) 程序设计与调试实验结果:编写的程序能够正确执行,并得到了预期的结果。
(3) 中断实验结果:编写的程序能够响应相应的中断信号,并实现了对键盘输入的处理。
四、实验分析与讨论1. 实验分析:通过本次实验,我们深入了解了微机原理的相关知识,并通过实践操作,掌握了微机原理的实验方法和技巧。
2. 实验讨论:在实验过程中,我们遇到了一些困难和问题,例如硬件接口的连接和调试,程序的编写和调试等。
但通过彼此的合作与讨论,我们最终解决了这些问题,并成功完成了实验。
五、实验总结通过本次实验,我们对微机原理有了更深入的理解,并通过实践操作,掌握了微机原理的实验方法和技巧。
《微机》实验报告格式《微机原理及应用》实验报告班级:08电科(1)学号:Xb08640103 姓名:李飞实验时间:4月12号同组同学:陈庆奇实验成绩:实验名称:实验一清零程序一、实验目的:1、掌握8088汇编语言程序设计和调试方法,熟悉键盘操作。
2、掌握汇编语言设计和调试方法。
进一步掌握汇编语言设计和调试方法。
二、实验内容:1、把RAM区内4000H~40FFH单元的内容清零。
2、把4000H的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H 高位清零,一般本程序用于把数据送显示缓冲区时用。
3、把4000H、4001H的低位分别送入4002H高低四位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
三、程序框图及电路连接图程序1:程序2:程序3:四、源程序清单(注释部分请手写)程序1:汇编语言源程序结构部分CODE SEGMENT ASSUME CS:CODE ORG 3000H行数标号指令;注释1 S1 MOVBX,4000H2 MOVAX,0000H3 MOVCX,0080H4 XOR AX,AX5 L1 MOV [BX],AX6 INC BX7 INC BX8 DEC CX9 JNZ L110 JMP $汇编语言源程序结构部分CODE ENDS END S1程序2:程序1:汇编语言源程序结构部分CODE SEGMENTASSUMECS:CODE,DS:CODE,ES:CODEORG 3020H行数标号指令;注释1 S2 MOV BX,4000H2 MOV AL,[BX]3 MOV AH,AL4 MOV CL,45 SHR AH,CL6 INC BX7 MOV [BX],AH8 AND AL,0FH9 INC BX10 MOV [BX],AL11 JMP $汇编语言源程序结构部分CODE ENDSEND S2程序2:程序1:汇编语言源程序结构部分CODE SEGMENT ASSUMECS:CODE,DS:CODE,ES:CODEORG 3040H行数标号指令;注释1 S3 MOV BX,4000H2 MOV AX,[BX]3 AND AL,0FH4 MOV CL,45 SHL AL,CL6 OR AL,AH7 ADD BX,28 MOV [BX],AL9 JMP $汇编语言源程序结构部分CODE ENDSEND S3五、程序运行结果程序1结果:把RAM区内4000H~40FFH单元的内容清零。
信息与通信工程学院微机原理软件实验报告班级:姓名:学号:日期:2011年12月实验一DEBUG的使用 (1)一、实验目的 (1)二、实验内容 (1)三、预习思考 (3)四、实验过程 (4)五、实验总结 (9)实验二分支、循环程序设计 (10)一、实验目的 (10)二、实验内容 (10)三、预习思考 (10)四、实验过程 (10)(一)、流程图 (11)(二)、源代码 (11)(三)、实验分析 (11)五、实验总结 (14)实验三代码转换程序设计 (15)一、实验目的 (15)二、实验内容 (15)三、预习思考 (15)四、实验过程 (16)(一)流程图 (16)(二)模块层次图 (16)(三)源代码 (17)(四)实验分析 (21)五、实验总结 (22)实验四子程序设计 (23)一、实验目的 (23)二、实验内容 (23)三、预习思考 (23)四、实验过程 (24)(一)流程图 (24)(二)模块层次图 (25)(三)源代码 (25)(四)实验分析 (34)五、实验总结 (35)实验五中断程序设计 (37)一、实验目的 (37)二、实验内容 (37)三、预习思考 (37)四、实验过程 (38)(一)流程图 (38)(二)源代码 (39)(三)实验分析 (45)五、实验总结 (46)实验一 DEBUG 的使用一、实验目的1.掌握汇编程序的编辑、编译、连接和执行的全过程;2.学习和掌握用DEBUG调试程序的方法。
二、实验内容1.用编辑软件,输入以下汇编语言源程序:DAT SEGMENTA DB 20B DB 15Y DB 3 DUP(0)Z DB 0,0DAT ENDSSTA SEGMENT STACKDW 50 DUP(?)STA ENDSCOD SEGMENTASSUME CS:COD,DS:DATSTAR PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATMOV DS,AXMOV AX,STAMOV SS,AXMOV AL,AMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,BMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,AMOV Z,ALMOV AL,BMOV Z+1,ALCALL SUB1ADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSTAR ENDPSUB1 PROCMOV AL,ZMOV AH,Z+1MUL AHADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSUB1 ENDPCOD ENDSEND STAR2.通过编译,连接形成可执行文件。
实验2—1(1)定义字DA TA SEGMENTA DW 855CHB DW 0AB43HNUM DW ?DA TA ENDSCODE SEGMENT Assume CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV AX,AMOV BX,BADD AX,BXMOV NUM,AXMOV AH,4CHINT 21HCODE ENDSEND START实验2—1直接寻址DA TA SEGMENTA DB 5CH,85HB DB 43H,0ABHNUM DW ?DA TA ENDSCODE SEGMENT Assume CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV AX,AMOV BX,BADD AX,BXMOV NUM,AXMOV AH,4CHINT 21HCODE ENDSEND START实验2—3拆字DA TA SEGMENTORG 1000HNUM DW 1234HORG 4000HA DB ?B DB ?DA TA ENDSCODE SEGMENTAssume CS:CODE,DS:DA TASTART:MOV AX,NUMMOV A,AHMOV B,ALMOV AH,4CHINT 21HCODE ENDSEND START实验3—3DA TA SEGMENTINFOR1 DB 0AH,0DH, 'Please Press any key to input a letter:$' ;0AH为换行,0DH为回车INFOR2 DB 0AH,0DH, 'You Input a lowercase letter! $'INFOR3 DB 0AH,0DH, 'You input a uppercase letter! $'INFOR4 DB 0AH,0DH, 'You input a digit! $'INFOR5 DB 0ah,0dh, 'You input other letter! $'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET INFOR1MOV AH,09H ;输出字符串INFOR1;MOV AH,1INT 21HMOV AH,01H ;从键盘输入一个字符INT 21HCMP AL, '0'JB OTHER ;小于0,为其他字符CMP AL, '9'JBE DIGIT ;大于等于0,小于等于9,为数字CMP AL, 'A'JB OTHERCMP AL, 'Z'JBE UPPERCMP AL, 'a'JB OTHERCMP AL, 'z'JBE LOWERJMP PENDLOWER: MOV DX,OFFSET INFOR2 MOV AH,09HINT 21HJMP PENDUPPER: MOV DX,OFFSET INFOR3 MOV AH,09HINT 21HJMP PENDDIGIT: MOV DX,OFFSET INFOR4MOV AH,09HINT 21HJMP PENDOTHER: MOV DX,OFFSET INFOR5 MOV AH,09HINT 21HJMP PENDPEND: MOV AH,4CHINT 21HCODE ENDSEND START实验3—1DA TA SEGMENTSTRING DB 'I am a student'LEN EQU $-STRINGDA TA ENDSCODE SEGMENTAssume CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV BX,OFFSET STRINGMOV CL,LENNEXT:MOV AL,[BX]CMP AL,'a'JB LOPCMP AL,'z'JA LOPSUB AL,20HMOV [BX],ALLOP:INC BXDEC CLJNZ NEXTMOV AH,4CHINT 21HCODE ENDSEND START实验4—1DA TA SEGMENTA DB '1234567890'N EQU $-AB DB N DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,ALEA DI,BADD DI,NMOV CX,NMOVE:MOV AL,[SI]MOV ES:[DI],ALINC SIDEC DILOOP MOVEMOV AH,4CHINT 21HCODE ENDSEND START实验4—2DA TA SEGMENTORG 1000HDB 100 DUP('A')ORG 1050HDB 100 DUP('B')DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATAMOV DS,AX;MOV ES,AXMOV SI,1000HMOV DI,1050HMOV CX,100AGAIN: MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START实验4—3DA TA SEGMENTBUF DW 1,2,3,4,5,6,7,8,9,0MAX DW 0DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV SI,OFFSET BUFMOV CX,10AGAIN: MOV AX,[SI]CMP AX,MAXJB NEXTMOV MAX,AXNEXT: INC SIINC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START实验6—1DA TA SEGMENTSTR DB 'Please input a character:$'STR1 DB 0ah,0dhSTR3 DB ?,'H$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRMOV AH,09HINT 21HMOV AH,01HINT 21HMOV STR1,ALMOV DX,OFFSET STR1MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验6—2DA TA SEGMENTSTR1 DB 0dh,0ah,'Please input a character:$'STR2 DB 0dh,0ah,'You input a number!$'STR3 DB 0dh,0ah,'The character you input is not a number!$' DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STR1MOV AH,09HMOV AH,01HINT 21HCMP AL,30HJB NEXT1CMP AL,39HJA NEXT1MOV DX,OFFSET STR2MOV AH,09HINT 21HJMP NEXT2NEXT1:MOV DX,OFFSET STR3 MOV AH,09HINT 21HNEXT2:MOV AH,4CHINT 21HCODE ENDSEND START实验6—3DA TA SEGMENTinfo1 db 0dh,0ah, 'input string:$' info2 db 0dh,0ah, 'output string:$' STR DB 20 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRADD SI,10MOV [SI],BYTE PTR '$'MOV DX,OFFSET info1MOV AH,09HINT 21HMOV CX,10AGAIN:MOV AH,01HINT 21HDEC SIMOV [SI],ALLOOP AGAINMOV DX,OFFSET STRMOV AH,09HMOV AH,01HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验6—1;输入字符后回车CODE SEGMENTASSUME CS:CODE,DS:CODE START:MOV AX,CODEMOV DS,AXMOV AH,01HINT 21HMOV DL,0AHINT 21HPUSH AXAND AX,00FFHMOV CL,4SHR AL,CLADD AL,30HMOV DL,ALMOV AH,02HINT 21HPOP AXAND AL,0FHCMP AL,0AHJNC NEXTADD AL,30HJMP finalNEXT:ADD AL,37Hfinal:MOV DL,ALMOV AH,02HINT 21HMOV DL,'H'INT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验6—3DATA SEGMENTinfo1 DB 0dh,0ah,'input string:$' info2 DB 0dh,0ah,'output string:$' STR DB 0Bh,0,20 dup(?)n EQU $-STRDB '$'DATA ENDSCODE SEGMENTASSUME cs:code,ds:data START:mov ax,DATAmov DS,axlea DX,info1mov AH,09HINT 21Hlea DX,STRmov AH,0AHINT 21HMOV CX,0lea SI,STRmov DI,SIadd DI,n-1INC SIINC SInumber:MOV BL,[SI]CMP BL,0DHJZ NEXTINC CXINC SIJMP numberNEXT:lea SI,STRINC SIINC SIagain:mov bl,[SI]mov [DI],blINC SIDEC DIloop againlea DX,info2mov AH,09HINT 21HINC DImov DX,DImov AH,09HINT 21Hmov AH,4chINT 21h CODE endsend startcode segment assume cs:code start:mov ah,1int 21hcmp al,1bhjz tjmov bl,almov ch,2rotate:mov cl,4rol bl,clmov al,bland al,0fhadd al,30hcmp al,3ahjl printitadd al,7hprintit:mov dl,almov ah,2int 21hdec chjnz rotatejmp starttj:mov ax,4c00hint 21hcode endsend start。
实验题目8253定时/计数器实验 一、 实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。
2. 掌握8253定时器/计数器的工作方式和编程原理。
二、 实验内容: 1、实验原理 本实验原理图如图 1所示,8253A 的A0、A1接系统地址总线 A0、A1,故8253A 本实验通道2 有四个端口地址,如端口地址表 1所示。
8253A 的片选地址为 48H~ 4FH 。
因此, 仪中的8253A 四个端口地址为 48H 、49H 、4AH 、4BH ,分别对应通道 0、通道1、 和控制字。
采用8253A 通道0,工作在方式3(方波发生器方式),输入时钟CLK0为 输出OUTO 要求为1KHZ 的方波,并要求用接在 GATE0引脚上的导线是接地("0" 甩空("1"电平)来观察GATE 对计数器的控制作用,用示波器观察输出波形。
2、实验线路连接 (1) 8253A 芯片的CLK0引出插孔连分频输出插孔 (2) 8253A 的 GATE0 接+5V 。
实验步骤 (1) 按图1连好实验线路(2) 运行实验程序 1. 按“调试”按钮2. 选“窗口” “进入示波器窗口” ,然后最小化3. 按“运行按钮”4.将模拟示波器窗口打开,选择“串行口 2”,再按 Ctrl + F2按钮即可看到波形 显示“ 8253-1 ”用示波器测量8253A 的OUT2输出插孔,方波输出,幅值0〜4V 三、实验代码: 1MHZ ,电平)或 3、 CODE SEGMENT ASSUME CS:CODE TCONTRO EQU 004BH TCON2 EQU 004AH CONT PORT EQU 00DFH DATA PORT EQU 00DEH DATA1 EQU 0500H START: JMP TCONT TCONT: CALL FORMATCALL LEDDIS P MOV DX,TCONTRO1MHZ 。
微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。
实验一,微机系统组成及工作原理。
1.1 微机系统的组成。
微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。
其中,CPU是微机系统的核心部件,负责控制整个系统的运行。
1.2 微机系统的工作原理。
微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。
CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。
实验二,微机系统的组装和调试。
2.1 微机系统的组装。
在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。
组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。
2.2 微机系统的调试。
组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。
通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。
实验三,微机系统的应用。
3.1 微机系统的应用领域。
微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。
在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。
3.2 微机系统的发展趋势。
随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。
未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。
结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。
这对我今后的学习和工作将有很大的帮助。
一、实验目的1.掌握存储器读写方法2.了解存储器的块操作方法、实验原理存储器读写和块操作三、实验设备仪器及材料计算机,WAVE 6000软件data endscode segme ntassume cs:code, ds:datastart proc n earmov ax, datamov ds, axmov bx, offset Block ;起始地址movcx, 256 ; 清256字节Againmov [bx], byte ptr 0inc bx;地址+1Loop Agai n ;记数减一jmp $ ; 死循环code endsend start四、实验过程Sl.asm data segme nt Block db 256 dup(55h) 代码流程图(1)进入Wave6000,输入程序并检查,保存程序。
⑵“编译”程序。
(3) “全速执行”程序。
⑷“暂停”程序运行,在“数据窗口( MEMOREY )”查看0400H 起始的单元 内容,并记录。
(5)在指令“jmp $”处设断点。
“全速执行”程序。
⑹ 在“数据窗口( MEMOREY )”查看0400H 起始的单元内容,记录并分析实 验结果。
六、实验结果及总结 1、在“数据窗口( MEMOREY )”查看0400H 起始的单元内容 运行前:2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH) ?总结:通过本实验,我了解到单片机读写存储器的读写方法, 同时也了解到单片 机编程,调试方法。
学会内存的移动方法,也加深对存储器读写的认识。
实验步骤运行后:511H C \UB200Qf \E X&6ASM \S1. ASM(0400 00 0G 00 00 (I) 00 00 CO 00 00 041000 00 00 OG oo 10420 00 □0 00 oo □0 關皿 00 GO oo □0 0440 oa 00 00 oo oo00 □0 co oo oo 0400 00 00 DC oo □.1JJ00 00 0D □0 00 oo_ tJ D 00 oa tK 00 aoon XJ 00 (K 0D oo00 00 co 00 00 oo00 00 co (K ) 00 ooC - \LAB2000F\EXS6kSM \51. ASM地址:0400)(oa 00 W W 00 OO^d r.实验课程名微机原理实验成绩实验项目名称实验二、二进制到BCD码转换指导老师、实验目的1. 了解BCD值和ASCII值的区别2.了解如何将BCD值转换成ASCII值。
微机原理实验报告
一、实验目的
本次实验的主要目的是了解微机原理、学习微机的基础知识、技能和操作方法,还有熟悉微机实验室的使用方法。
二、实验过程
在实验室中,我们首先进行了掌握微处理器的基本指令集和编程技巧的实验。
通过对微处理器的学习,我们了解到了微处理器的组成结构和工作原理,同时也了解了微处理器的基础指令集,包括数据的传送、算术、逻辑、分支、循环指令等等。
接着我们进行了CPU总线实验。
通过对CPU总线的学习,我们了解了CPU读写内部和外部存储器的方法和原理。
同时,我们学习了编写程序来控制CPU读写存储器等。
最后,我们进行了8255并行接口控制实验。
通过学习并实践8255并行接口控制实验,我们了解了接口及其编程。
三、实验结果
在实验中,我们成功地掌握了微处理器的基本指令集和编程技巧,了解了微处理器的组成结构和工作原理,同时掌握了CPU总
线实验和8255并行接口控制实验。
在实验中不仅增长了专业知识,而且也培养了我们的实验能力,并进一步增强了我们的实践能力。
四、实验心得
通过这次实验,我们意识到,要想成为一名优秀的计算机专业
人才,必须首先打牢微机原理的基础,通过大量的实践和实验,
来应用理论知识,深入了解计算机底层的数据处理方式以及处理
器和存储器的工作原理。
只有这样才能够在日后工作中运用自如,并且在以后的学习和研究中更具备竞争力。
在以后的学习中,我将持续学习和实践,不断探索和发现,提
升自身的能力,为未来的发展做好充分的准备。
实验2—1(1)定义字DA TA SEGMENTA DW 855CHB DW 0AB43HNUM DW ?DA TA ENDSCODE SEGMENT Assume CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV AX,AMOV BX,BADD AX,BXMOV NUM,AXMOV AH,4CHINT 21HCODE ENDSEND START实验2—1直接寻址DA TA SEGMENTA DB 5CH,85HB DB 43H,0ABHNUM DW ?DA TA ENDSCODE SEGMENT Assume CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV AX,AMOV BX,BADD AX,BXMOV NUM,AXMOV AH,4CHINT 21HCODE ENDSEND START实验2—3拆字DA TA SEGMENTORG 1000HNUM DW 1234HORG 4000HA DB ?B DB ?DA TA ENDSCODE SEGMENTAssume CS:CODE,DS:DA TASTART:MOV AX,NUMMOV A,AHMOV B,ALMOV AH,4CHINT 21HCODE ENDSEND START实验3—3DA TA SEGMENTINFOR1 DB 0AH,0DH, 'Please Press any key to input a letter:$' ;0AH为换行,0DH为回车INFOR2 DB 0AH,0DH, 'You Input a lowercase letter! $'INFOR3 DB 0AH,0DH, 'You input a uppercase letter! $'INFOR4 DB 0AH,0DH, 'You input a digit! $'INFOR5 DB 0ah,0dh, 'You input other letter! $'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET INFOR1MOV AH,09H ;输出字符串INFOR1;MOV AH,1INT 21HMOV AH,01H ;从键盘输入一个字符INT 21HCMP AL, '0'JB OTHER ;小于0,为其他字符CMP AL, '9'JBE DIGIT ;大于等于0,小于等于9,为数字CMP AL, 'A'JB OTHERCMP AL, 'Z'JBE UPPERCMP AL, 'a'JB OTHERCMP AL, 'z'JBE LOWERJMP PENDLOWER: MOV DX,OFFSET INFOR2 MOV AH,09HINT 21HJMP PENDUPPER: MOV DX,OFFSET INFOR3 MOV AH,09HINT 21HJMP PENDDIGIT: MOV DX,OFFSET INFOR4MOV AH,09HINT 21HJMP PENDOTHER: MOV DX,OFFSET INFOR5 MOV AH,09HINT 21HJMP PENDPEND: MOV AH,4CHINT 21HCODE ENDSEND START实验3—1DA TA SEGMENTSTRING DB 'I am a student'LEN EQU $-STRINGDA TA ENDSCODE SEGMENTAssume CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV BX,OFFSET STRINGMOV CL,LENNEXT:MOV AL,[BX]CMP AL,'a'JB LOPCMP AL,'z'JA LOPSUB AL,20HMOV [BX],ALLOP:INC BXDEC CLJNZ NEXTMOV AH,4CHINT 21HCODE ENDSEND START实验4—1DA TA SEGMENTA DB '1234567890'N EQU $-AB DB N DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,ALEA DI,BADD DI,NMOV CX,NMOVE:MOV AL,[SI]MOV ES:[DI],ALINC SIDEC DILOOP MOVEMOV AH,4CHINT 21HCODE ENDSEND START实验4—2DA TA SEGMENTORG 1000HDB 100 DUP('A')ORG 1050HDB 100 DUP('B')DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATAMOV DS,AX;MOV ES,AXMOV SI,1000HMOV DI,1050HMOV CX,100AGAIN: MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START实验4—3DA TA SEGMENTBUF DW 1,2,3,4,5,6,7,8,9,0MAX DW 0DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV SI,OFFSET BUFMOV CX,10AGAIN: MOV AX,[SI]CMP AX,MAXJB NEXTMOV MAX,AXNEXT: INC SIINC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START实验6—1DA TA SEGMENTSTR DB 'Please input a character:$'STR1 DB 0ah,0dhSTR3 DB ?,'H$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRMOV AH,09HINT 21HMOV AH,01HINT 21HMOV STR1,ALMOV DX,OFFSET STR1MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验6—2DA TA SEGMENTSTR1 DB 0dh,0ah,'Please input a character:$'STR2 DB 0dh,0ah,'You input a number!$'STR3 DB 0dh,0ah,'The character you input is not a number!$' DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STR1MOV AH,09HMOV AH,01HINT 21HCMP AL,30HJB NEXT1CMP AL,39HJA NEXT1MOV DX,OFFSET STR2MOV AH,09HINT 21HJMP NEXT2NEXT1:MOV DX,OFFSET STR3 MOV AH,09HINT 21HNEXT2:MOV AH,4CHINT 21HCODE ENDSEND START实验6—3DA TA SEGMENTinfo1 db 0dh,0ah, 'input string:$' info2 db 0dh,0ah, 'output string:$' STR DB 20 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRADD SI,10MOV [SI],BYTE PTR '$'MOV DX,OFFSET info1MOV AH,09HINT 21HMOV CX,10AGAIN:MOV AH,01HINT 21HDEC SIMOV [SI],ALLOOP AGAINMOV DX,OFFSET STRMOV AH,09HMOV AH,01HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验6—1;输入字符后回车CODE SEGMENTASSUME CS:CODE,DS:CODE START:MOV AX,CODEMOV DS,AXMOV AH,01HINT 21HMOV DL,0AHINT 21HPUSH AXAND AX,00FFHMOV CL,4SHR AL,CLADD AL,30HMOV DL,ALMOV AH,02HINT 21HPOP AXAND AL,0FHCMP AL,0AHJNC NEXTADD AL,30HJMP finalNEXT:ADD AL,37Hfinal:MOV DL,ALMOV AH,02HINT 21HMOV DL,'H'INT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验6—3DATA SEGMENTinfo1 DB 0dh,0ah,'input string:$' info2 DB 0dh,0ah,'output string:$' STR DB 0Bh,0,20 dup(?)n EQU $-STRDB '$'DATA ENDSCODE SEGMENTASSUME cs:code,ds:data START:mov ax,DATAmov DS,axlea DX,info1mov AH,09HINT 21Hlea DX,STRmov AH,0AHINT 21HMOV CX,0lea SI,STRmov DI,SIadd DI,n-1INC SIINC SInumber:MOV BL,[SI]CMP BL,0DHJZ NEXTINC CXINC SIJMP numberNEXT:lea SI,STRINC SIINC SIagain:mov bl,[SI]mov [DI],blINC SIDEC DIloop againlea DX,info2mov AH,09HINT 21HINC DImov DX,DImov AH,09HINT 21Hmov AH,4chINT 21h CODE endsend startcode segment assume cs:code start:mov ah,1int 21hcmp al,1bhjz tjmov bl,almov ch,2rotate:mov cl,4rol bl,clmov al,bland al,0fhadd al,30hcmp al,3ahjl printitadd al,7hprintit:mov dl,almov ah,2int 21hdec chjnz rotatejmp starttj:mov ax,4c00hint 21hcode endsend start。
实验一清零程序一、实验目的:掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容:把7000H~70FFH的内容清零。
三、实验程序框图四、实验步骤:1、当DVCC单片机仿真实验系统独立工作时。
(1)仿真实验系统显示闪动“P.”时,根据表一所示,通过键盘输入实验程序的起始地址0030H,再按执行键EXEC,表示连续运行该程序,稍候,按RESET键退出运行;如果以单步运行程序,则输入0030后,按SETP键,按一次执行一条语句,直到执行到003CH 为止,按MON键退出运行;如果以断点运行程序,则先输入003C(断点地址),再按Fl 键,再输入0030(起始地址),然后按EXEC键执行程序,当执行到003CH时自动停下来,此时按MON键退出。
(2)用存贮器读写方法检查7000H~70FFH中的内容应全是00H。
2、当DVCC仿真实验系统联PC机时(1)在闪动“P.”状态,按PCDBG(2)在PC机处于DBUG子菜单状态,选择Load功能(3)根据屏幕提示输入目标文件名(C1ear.hex)后Enter(4)待传送正常结束后按回车键(5)用F3命令将PC值(默为为0000H)修改为0030H(6)用单步(F8)或断点(先用F2命令输入断点地址,后用F9命令)方法运行实验程序。
(7)单步、断点运行完后,在存贮器窗口内检查7000H~70FFH中的内容是否为全0。
五、思考:假使要把7000H一70FFH中的内容改成FF,如何编制程序。
实验四数据区传递子程序一、实验目的:掌握RAM中的数据操作。
二、实验内容:把(R3.R4)源RAM区首址内的(R6.R7)个字数据,传送到(R4.R5)目的RAM区。
三、实验程序框图:四、实验步骤。
①在R2.R3中装入源首址<例如6000H>,R4.R5中装入目的地址<例如7000H>,R6.R7中装入字节数<0FFFH>。
②用单步、断点方法从起始地0090H开始运行实验程序(输入0090后按STEP键为单步运行)。
竭诚为您提供优质文档/双击可除实验二清零程序实验报告
篇一:单片机实验一清零程序实验报告
佛山科学技术学院
实验报告
课程名称实验项目清零程序专业班级姓名学号指导教师成绩日期年月日
实验报告内容:一实验目的二实验仪器(仪器名称、型号、参数、编号)三实验原理(原理文字叙述和公式、原理图)四.实验步骤五、实验数据和数据处理六.实验结果七.分析讨论(实验结果的误差来源和减小误差的方法、实验现象的分析、问题的讨论等)八.思考题
篇二:实验二程序设计实验
电子科技大学中山学院学生实验报告
篇三:实验二清零程序
实验二清零程序
1.实验方式:
模拟调试
2.实验内容:
把外部RAm
(xDATA)的2000-20FFhRAm空间置零
3.实验器材:
已经安装了KeILuv2集成调试环境软件的计算机1台
4.程序框图:
5.实验步骤:
(1)编写程序并编译通过。
(2)进入调试状态,点击工具栏中“”打开memory窗口,在memory1“Address”
位置上输入“x:2000h”,显示如下图1,把光标移到2000h 的单元上,点鼠标右键,在开出的窗口中选择“modifymemoryatx:0x002000”,然后出现如下图2的窗口,在这里边输入一个数据,如95h。
同样的方法,修改
20XXh-20FFh单元内容。
图1图2
(3)按单步键,可以看到memory#1窗口2000h开始的单元的变化。
(4)修改程序把4000h-5000h中内容置55h。
清零程序实验报告清零程序实验报告摘要:本实验旨在探究清零程序的实现原理和效果。
通过设计和编写清零程序,我们可以将计算机系统中的数据归零,使其重新回到初始状态,以提高系统的稳定性和可靠性。
本实验通过详细介绍清零程序的实现过程,分析其优点和不足,并对其在实际应用中的潜在问题进行探讨。
一、引言清零程序是计算机系统中一种重要的功能模块,它可以将存储器中的数据全部清零,以确保系统在重新启动或重新运行时处于稳定的状态。
清零程序的设计和实现对于系统的正常运行具有重要意义。
本实验将通过实际编写清零程序,探究其实现原理和应用效果。
二、清零程序的实现原理清零程序的实现原理主要包括以下几个步骤:1. 确定清零的目标范围:根据实际需求,确定需要清零的存储器地址范围。
2. 遍历目标范围:通过循环遍历目标范围内的存储器地址,将每个地址的数据置零。
3. 数据清零:将每个存储器地址的数据置零,可以通过赋值操作或使用清零函数实现。
4. 完成清零:遍历完目标范围内的所有存储器地址后,清零程序执行完毕。
三、清零程序的设计与实现本实验中,我们选择使用C语言编写清零程序。
以下是程序的设计与实现过程:1. 定义目标范围:根据实际需求,我们选择将存储器地址从0x0000到0xFFFF的范围作为目标范围。
2. 使用循环遍历目标范围:我们使用for循环结构,从目标范围的起始地址开始,逐个遍历每个地址。
3. 数据清零:通过将每个地址的数据置零,实现数据清零的操作。
我们可以使用赋值操作或调用C语言提供的清零函数memset()来实现。
4. 完成清零:当程序遍历完目标范围内的所有存储器地址后,清零程序执行完毕。
四、清零程序的优点和不足清零程序的设计和实现具有以下优点:1. 简单高效:清零程序的设计思路简单明了,实现起来相对容易。
通过循环遍历和数据清零操作,可以快速将存储器中的数据归零。
2. 提高系统稳定性:清零程序的运行可以将系统状态重置为初始状态,消除潜在的数据残留问题,从而提高系统的稳定性和可靠性。
竭诚为您提供优质文档/双击可除微机原理实验报告清零程序
篇一:微机原理实验报告
微机原理与应用课程实验报告
实验分工:
报告人
同组人
实验时间:20XX.12.10
课程设计
一、题目要求
(1)在数据段首址为0100h开始的内存区1按从大到小的顺序顺次存入二进制数15~0共16个字节的数据;
(2)将上述源区内容传送到目的内存区2(首址为1100h)中;
(3)检验上述传送过程是否正确,如有错误,在紧跟内存区2后的第一个字节
开始写入AscII码“eRRoR”,否则写入“oK”。
(4)用冒泡法将上述内存区2的数据,按从小到大的次序重新排列,排列后存放在内存区3(开始地址为2100h)。
(5)将上述内存区2和内存区3的第100个数据分别乘以2,并转为bcD码,保存在各自存储区的末尾。
再将上述两个bcD码相乘,其结果保存在内存区1的末尾处。
二、实验程序框图
三、程序代码
codesegment
assumecs:code
DATA1db16dup(?)
DATA2dbeRRoR
DATA3dboK
;在数据段首址为0100h开始的内存区1按从大到小的顺序顺次存入二进制数15~0共16个字节的数据start:
movax,0100h;规定目标程序存放单元的偏移量
movds,ax;数据段地址
moves,ax
movsi,offsetDATA1;偏移地址
movcx,0010h;循环次数
movbx,0100h
moval,ofh
s1:
movcs:[si],al
mov[bx],cs:[si]
incsi
incbx
decal
loops1
nop
;将内存区1数据搬移到内存区2中
movcx,16
movsi,0100h
movbx,1100h
s2:
moval,[si]
mov[bx],al
incbx
loops2
nop
;对比内存区1的数据与内存区2的数据是否相同mov cx,16
movsi,0100h
movbx,1100h
comp:
movax,[si]
movdx,[bx]
cmpax,dx
jneerro
incsi
incbx
loopcomp
;数据如果都相同,说明上述传输过程正确movsi,offsetDATA3
movdi,1110h
movbl,0
movcx,2
enteroK:
movbl,cs:[si]
mov[di],bl
incsi
incdi
loopenteroK
nop
jmps3
;如果有一个数据不相同,说明上述传输过程不正确err:
movsi,offsetDATA2
movdi,1110h
movbl,0
movcx,5
entereRR:
movbl,cs:[si]
mov[di],bl
incdi
loopentereRR
;将内存区2数据搬移到内存区3中
s3:
movsi,1100h
movcx,0010h
movbx,2100h
moval,0
movcx,16
fil:
moval,[si]
mov[bx],al
incsi
incbx
loopfil
nop
;用冒泡法将内存区3的数据按从小到大重新排列s4: movbl,0
movcx,16
movsi,2110h
decsi
deccx
again:
moval,[si]
cmpal,[si-1]
jaenext
xchgal,[si-1]
mov[si],al
movbl,1
next:
decsi
loopagain
cmpbl,0
jnestart1
nop
movsi,1109h
moval,[si]
movcl,2
mulcl;结果在al中
movdx,0
movbx,10
divbx
shlal,4
addal,dl;把二进制数转换成bcD码mov[1112h],al
movsi,2109h
moval,[si]
movcl,2
mulcl;结果在al中
movdx,0
movbx,10
divbx
shlal,4
addal,dl;把二进制数转换成bcD码mov[2110h],al
;两个bcD码相乘,其结果保存在内存区1的末尾处。
movsi,1112h
movah,[si]
movcl,4
shrah,cl
moval,ah
movdl,10
muldl;结果在al中
movdl,[si]
篇二:微机原理实验报告
华北电力大学
科技学院
课程名称:微机原理实验学生姓名:牛玺童班级:电气学号:实验报告11k6111904010415
实验一数据转换实验
一、实验目的
(1)初步掌握在pc机上建立、汇编、链接和运行8086/88汇编语言程序的过程。
(2)通过对两个验证性试验的阅读、调试、掌握不同进制数及编码相互转换的程序设计方法。
(3)完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。
二、实验内容
1.十六进制数转换为AscII码
设二字节十六进制数存放于其实地址为3500h的内存单元中,把他们转换成AscII码后,再分别存入起始地址为350A。