汇编语言程序设计实验报告
- 格式:doc
- 大小:51.00 KB
- 文档页数:3
微机原理实验报告实验名称汇编语言程序设计一、实验目的1、掌握Lab6000p实验教学系统基本操作;2、掌握8088/8086汇编语言的基本语法结构;3、熟悉8088/8086汇编语言程序设计基本方法二、实验设备装有emu8086软件的PC机三、实验内容1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。
编程并显示结果:如果数组是无符号数,求出最大值,并显示;如果数组是有符号数,求出最大值,并显示。
2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:”3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:”4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。
在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序)5、键盘输入一个小写字母(a~z),转换成大写字母显示:请输入一个小写字母(a~z):转换后的大写字母是:6、实现4字节无符号数加法程序,并显示结果,如99223344H +99223344H = xxxxxxxxH四、实验代码及结果实验代码见代码附录1.1程序运行结果图1 无符号最大值结果截图1.1 程序运行结果图2 有符号最大值截图2.0 程序运行结果图3 BCD码显示3.0 程序运行结果图4 ASCII码显示4.0 程序运行结果图5 移动次数显示5.0 程序运行结果图6 大小写转化6.0 程序运行结果图7 相加结果显示五、分析与总结。
微机原理实验报告实验名称汇编语言程序设计一、实验目的1、掌握Lab6000p实验教学系统基本操作;2、掌握8088/8086汇编语言的基本语法结构;3、熟悉8088/8086汇编语言程序设计基本方法二、实验设备装有emu8086软件的PC机三、实验容1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。
编程并显示结果:如果数组是无符号数,求出最大值,并显示;如果数组是有符号数,求出最大值,并显示。
2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:”3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:”4、两个长度均为100的存块,先将存块1全部写上88H,再将存块1的容移至存块2。
在移动的过程中,显示移动次数1, 2 ,3…0AH…64H(16进制-ASCII码并显示子程序)5、键盘输入一个小写字母(a~z),转换成大写字母显示:请输入一个小写字母(a~z):转换后的大写字母是:6、实现4字节无符号数加法程序,并显示结果,如99223344H +99223344H = xxxxxxxxH四、实验代码及结果实验代码见代码附录1.1程序运行结果图1 无符号最大值结果截图1.1 程序运行结果图2 有符号最大值截图2.0 程序运行结果图3 BCD码显示3.0 程序运行结果图4 ASCII码显示4.0 程序运行结果图5 移动次数显示5.0 程序运行结果图6 大小写转化6.0 程序运行结果图7 相加结果显示五、分析与总结。
微机实验报告第一部分:8086汇编语言程序设计一、实验目的通过上机练习,初步掌握8086的指令系统,熟悉8086汇编语言程序的编写格式,学会编写简单的汇编语言应用程序,初步学会使用DEBUG调试工具。
二、实验题目(一)编程实现从字符串中查找特定的字符,记录特定字符的个数,并将结果在屏幕上显示,同时退出并返回DOS。
(要求字符串从键盘上输入)1、流程图2、实验程序及注释DATA SEGMENTBUFSIZE DB 20 ;数据段ACTCHAR DB ? ;定义字符串CHARTEXT DB 20 DUP(?) ;给输入字符分配内存DB '$'CNT DB 0 ;给计数器分配内存STRING1 DB 'PLEASE INPUT THE STRING:','$'STRING2 DB 0AH,0DH,'INPUT THE WORD YOU WANT TO CHECK:','$' STRING3 DB 0AH,0DH,'THE NUMBER OF THE WORD IS:','$'DATA ENDS ;数据段结束COSEG SEGMENT ;代码段ASSUME CS:COSEG,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET STRING1 ;显示提示语:请输入字符串MOV AH,09H ;输出字符串STRING1INT 21HMOV DX,OFFSET BUFSIZE ;从键盘输入字符串存入BUFSIZEMOV AH,0AH ;并送显INT 21HMOV DX,OFFSET STRING2 ;显示提示语:想查询的字符是MOV AH,09H ;输出字符串STRING2INT 21HMOV AH,01H ;从键盘上输入字符到AL中并送显INT 21HMOV BX,OFFSET CHARTEXT ;将字符串首地址存入BXMOV CL,ACTCHAR ;置循环次数CX=字符串长度XOR CH,CHLP1: CMP AL, [BX] ;字符串从头开始与键入字符AL比较JZ LP2 ;相等则转入LP2INC BX ;指针指向字符串下一个字符DEC CX ;循环次数减一JNZ LP1 ;若还有未比较的字符,继续循环LP1JMP FINI ;若全部比较完毕,跳转FINILP2: INC CNT ;计数器增一INC BX ;指针指向字符串下一个字符DEC CX ;循环次数减一JNZ LP1 ;若还有未比较的字符,跳至LP1 FINI: MOV DX,OFFSET STRING3 ;显示提示语:所查询的字符个数:MOV AH,09HINT 21HMOV AL,CNT ;将计数器的值送ALAAM ;将此值转换成非压缩BCD码ADD AH,30H ;将BCD码转换为ASCⅡ码MOV DL,AH ;高位送显MOV AH,02HINT 21HMOV AL,CNT ;再将计数器的值送ALAAMADD AL,30H ;将BCD码转换为ASCⅡ码MOV DL,AL ;低位送显MOV AH,02HINT 21HMOV AH,4CH ;结束INT 21HCOSEG ENDS ;代码段结束END START ;程序结束3、运行结果PLEASE INPUT THE STRING(先输入字符串):ASDFAAD↙INPUT THE WORD YOU WANT TO CHECK(输入待查找字符): A↙THE NUMBER OF THE WORD IS(数量为):3↙PLEASE INPUT THE STRING(先输入字符串):ASDFAAD↙INPUT THE WORD YOU WANT TO CHECK(输入待查找字符):9↙THE NUMBER OF THE WORD IS(数量为):0↙PLEASE INPUT THE STRING(先输入字符串):ASDFAAD↙INPUT THE WORD YOU WANT TO CHECK(输入待查找字符): S↙THE NUMBER OF THE WORD IS(数量为):1↙4、程序改进○1循环次数的改进原来的程序:MOV CX,19改进原因:此程序表明无论输入的字符串多长,即使没有达到限定的最大字符串的长度,也要循环19次。
单片机实验1 汇编语言程序设计实验---- 存储器块赋值一.实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二.实验内容指定存储器中某块的起始地址和长度,要求将其内容赋值。
例如将4000H 开始的100个字节内容清零或全部赋值为33H(参考程序),要求根据参考程序修改:修改程序,赋值内容为(10,9,8,7,6,5,4,3,2,1。
)三.实验仪器微机、VW,WAVE6000编程环境软件,(单片机实验箱)仿真器--仿真器设置-选择仿真器选择仿真头选择CPU Lab8000/Lab6000通用微控制器 MCS51实验 8051前3个软件实验勾选√使用伟福软件模拟器四实验步骤注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
编译器默认设置:程序框图参考例程序:Block equ 4000hmov dptr, #Block ; 起始地址mov r0, #10 ; 清10个字节mov a, #33h ; 将33H赋值给aLoop:movx @dptr, a 将a写入外部RAMinc dptr ; 指向下一个地址djnz r0, Loop ; 记数减一ljmp $ ; $当前程序指针相当于一直执行自己;ljmp $ end说明:$:是当前语句的程序指针(地址)相当于一直执行自己:ljmp $,程序死循环要求赋值数据为10,9,8,7,6,5,4,3,2,1则以上程序该如何改动? 自己修改程序实现。
汇编语言程序设计报告班级:学号:姓名:目录汇编语言程序设计报告 (1)汇编语言程序设计实验报告 (4)实验一 (4)实验内容 (4)实验目的 (4)实验代码 (4)实验代码整体思路 (5)1.检测所编程序的正确性 (5)实验二 (7)1.实验内容 (7)结果测试: (11)Debug: (11)实验三 (13)实验要求: (13)实验代码: (13)实验代码思路: (15)检测结果,验证正确性 (15)结论 (17)实验四 (17)实验内容 (17)流程图 (18)实验代码: (18)Windbg (21)实验结果测试: (23)输入数据进行测试 (24)实验五 (24)实验内容:多模块程序设计及多语言混合编程。
(24)要求: (24)实验代码: (24)实验代码分析说明: (26)实验数据检测:判断是否成功完成实验任务 (27)实验心得 (28)汇编语言程序设计实验报告实验一实验内容:熟悉DOS编程环境:编写一个DOS环境的汇编语言程序,要求从键盘输入一串字符,去除连续重复的字符后再显示,如:输入一串为“aaawwweerrty”的字符串,输出结果应为‘awerty’实验目的:通过上机实践加深对16位环境下编程的了解学会使用debuge调试程序实验代码:LEA SI, BUFFER + 1LP1:INC SILP2:MOV AL, [SI]CMP AL, 13JZ DISPCMP AL, [SI + 1]JNZ LP1MOV DI, SILP3:INC DIMOV AL, [DI + 1]MOV [DI], ALCMP AL, 13JZ LP2JMP LP3DISP:MOV AL, '$'MOV [SI], ALMOV AH, 9LEA DX, BUFFER + 2INT 21HEXIT:MOV AX, 4C00HINT 21HCODE ENDSEND MAIN实验代码整体思路:定义一个大小为60的缓冲区,用来存储从键盘输入的字符串;调用中断调用,将字符串输入到缓冲区当中;使用取地址符号Lea取得输入字符串的首地址然后后一位与前一位相比,若相同则将其舍弃,否者将其记录在缓冲区中,循环结束之后在其后补上字符“$”即可一次输出,无单个输出1.检测所编程序的正确性:编译所建的1.asm文件:按下回车键之后开始编译,如下图所示,编译结束表明没有错误不存在警告对编译成功之后的文件进行链接,以生成能运行的.exe文件,如下图1-1所示:1-1链接之后发现链接(Link)之后也是成功的,接下来就进行测试的最后一步,即运行1.exe文件,输入一串字符串,看能否达到预期的目的,如达到,则成功,否者重新编译。
汇编语言程序设计上机实验报告(实验三)一、实验题目、内容及要求:一、实验题目、内容及要求:题目:循环程序设计内容:编写一程序,要求从键盘接收一个4位十六进制数,在终端上显示与它等值的二进制数。
二进制数。
要求:实验前要作好充分准备,包括程序清单、调试步骤、调试方法,对程序结果的分析等。
本实验要求在EDIT 下编写完整的汇编语言程并生成可执行文件运行。
下编写完整的汇编语言程并生成可执行文件运行。
二、实验时间及地点二、实验时间及地点日期:日期: 2011/11/21 节次:节次: 7.8 地点:地点:电子实验楼二楼电子机房电子实验楼二楼电子机房 三、实验目的三、实验目的通过本实验掌握DOS 系统功能调用功能,掌握循环程序设计的方法;学会编写循环结构程序。
构程序。
简述在实验过程中遇到的问题和解决的方法:简述在实验过程中遇到的问题和解决的方法:1、问题:遇到死循环解决方法:程序显示disp 中发现执行int int 21h 21h 会修改al 的值,避免这种情况的方法就是使用堆栈段。
2、问题:调试中出现no data segment 解决方法:start 开始时没有将数据段的IP 地址赋给dx 。
data segment 3、问题:可执行,结果为乱码解决方法:数据划分比较的粗,没有系统的将数据系统划分。
系统划分:<30h other 30h-39h num 39h-41h other 41h-46h big zi mu 46h-61h other 61h-67h small zi mu >67h other 运行结果:(要求用“抓图软件”抓程序的运行结果)(要求用“抓图软件”抓程序的运行结果)结果分析及实验体会:结果分析及实验体会:1、结果0001001000110100是十六进制数1234转化而来。
十六进制数通过ASCII码对照转换为二进制数。
A~F----- -57hA~ f----- -57h0~9 ------ -37h2、学习应用了循环指令并了解了其特点:A、循环指令不影响标志位B、其功能为使寄存器CX的值减1,如果结果不等于0,则循环至标号,否则顺序执行。
汇编语言程序设计实验报告(二)一、实验目的1)加深对循环结构的理解。
2)掌握循环程序的设计方法。
3)学习子程序的定义和调用方法。
4)掌握子程序、子程序的嵌套、递归子程序的结构。
5)掌握子程序设计、编制及调试。
6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容1)编制在屏幕上显示九九乘法表的程序。
2)编制在屏幕上显示用*组成的三角形的程序。
三、实验结果(1)(2)四、源代码(1)DA TA SEGMENTM DB 31H,32H,33H,34H,35H,36H,37H,38H,39H DA TA ENDSSTACK1 SEGMENT STACKDW 20H DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK1 START:MOV AX,DA TAMOV DS,AXMOV CX,9MOV DI,OFFSET MLOP1:PUSH CXMOV CX,[DI]AND CX,0FHMOV SI,OFFSET M LOP2:MOV AL,[SI]MOV DL,ALMOV AH,2INT 21HAND AL,0FHMOV BH,ALMOV DL,'*'MOV AH,2INT 21HMOV BL,[DI]MOV DL,BLMOV AH,2INT 21HMOV DL,'='MOV AH,2INT 21HAND BL,0FHMOV AL,BHMOV AH,0MOV DL,10DIV DLMOV BL,AHCMP AL,0JE NEXTMOV DL,ALADD DL,30HMOV AH,2INT 21H NEXT:MOV DL,BLADD DL,30HMOV AH,2INT 21HMOV DL,' 'MOV AH,2INT 21HINC SILOOP LOP2MOV DL,0AHMOV AH,2MOV DL,0DHINT 21HINC DIPOP CXLOOP LOP1MOV AH,4CHINT 21HCODE ENDSEND START(2)STACK1 SEGMENT STACKDW 20H DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1 BEGIN:MOV AH,1INT 21HMOV BL,ALSUB BL,30HMOV DL,0AHINT 21HMOV DL,0DHMOV AH,2INT 21HMOV BH,0MOV CX,BXMOV BX,1L1: PUSH CXMOV CX,BX L2: MOV DL,'*'MOV AH,2INT 21HLOOP L2MOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HADD BX,1POP CXMOV AH,4CHINT 21HCODE ENDSEND BEGIN五、实验心得这是第二次做汇编实验,首先,心理上已经没有了第一次做实验的那种茫然,知道了想要编写一个完整的程序,应当先将这一个大问题分解成若干个小的问题,找出每一个小问题所对应的解决方法,然后用代码一步一步实现,再将这一个一个的小问题串联起来,找到它们的契合点,用联系把它们组成一个完整的程序,其中最常用的就是转移指令和循环。
汇编语言程序设计实验报告汇编语言程序设计实验报告一、实验目的:(1)熟悉汇编语言运行环境和方法;(2)了解如何使用汇编语言编制程序;(3)熟悉DEBUG有关命令的使用方法;(4)利用DEBUG掌握有关指令的功能;(5)利用DEBUG 运行简单的程序段。
二、实验内容:1.学会输入,编辑汇编语言程序;2.学会习汇编语言程序进行汇编,连接和运行;3.进入和退出DEBUG程序;4.学会DEBUG中的D命令,E命令,R命令,T命令,A命令,G命令等的使用。
对于U命令,N命令,W命令等,也应试一下。
三、实验准备:1.仔细阅读有关汇编语言环境的内容,实现准备好使用的例子。
2.准备好源程序的清单,设计好调试的步骤,测试方法,对运行结果额分析。
3.编写一个程序:比较两个字符串所含的字符是否相同,若相同则显示’Match’。
否则显示’No match!’。
4.仔细阅读有关DEBUG命令的有关内容,对有关命令,都要事先准备好使用的例子。
四、实验步骤:1.在DOS提示下进入MASM目录。
2.在MASM目录下启动EDIT编辑程序,输入源程序,对其进行汇编,链接和运行。
(1)调用edit输入,编辑源程序并保存在指定目录中。
例: Edit abc.asin(2)用汇编程序masin对源程序汇编产生目标文件obj;例:不断修改错误,直至汇编通过为止。
(3)用连接程序link产生执行文件exe。
例:link abc(4)执行程序:可直接从DOS执行程序,即在DOS环境中,输入文件名即可。
3.详细记录每一步所用的命令,以及查看结果的方法和具体结果。
五、实验方法:比较字符串sle。
试编写一个程序:比较字符串string1和string2所含的字符是否相同。
若相同则显示’match ‘,否则则显示’No match’可以用串比较指令来完成程序所有要求的功能。
上机过程:1.调用字处理程序wordstar建立asm文件。
使用非文本文件方式(n命令)建立以sle.asm为文件名的源文件如下,然后用CTRLKX命令存入磁盘,并使用系统返回DOS。
姓名: 班级:
实验一 单指令功能测试实验
一、实验目的
1.会使用DEBUG软件;
2.利用DEBUG单步执行功能测试指令的执行。
二、实验内容
判断从键盘输入的ASCII码数字,若是小于等于5,显示“C”,若是大于5显示“D”。假设输入的
只可能是0~9数字。
实验二 完整的汇编语言程序设计实验
一、实验目的
1.掌握完整的汇编语言源程序的设计方法;
2.掌握汇编语言源程序的执行过程。
二、实验内容
P131作业29。
实验三 子程序设计实验
一、实验目的
1.掌握汇编语言源程序子程序设计方法;
2.会使用CV软件工具。
二、实验内容
把实验二作为子程序,编写主程序来对能否构成三角形进行10判断。
姓名: 班级:
实验四 宏汇编程序设计实验
一、实验目的
1.掌握宏汇编程序编程技术及宏调用的方法;
2. 了解COM文件的编程方法及特点;
2.会使用PWB及CV软件工具。
二、实验内容
求1+2+3+4+5+6+7+8+9的和,并将和显示在屏幕上;
具体要求:
1. 利用重复宏定义实现1、2、39数据的定义;
2. 将单个字符显示定义成宏,利用宏调用来实现和的显示。
3. 利用PWB集成环境完成程序的编辑、汇编及连接,并最终生成COM可执行文件。
实验五 多模块程序设计实验
一、实验目的
1.掌握汇编段的属性的含义;
2. 掌握利用LINK将多模块连接起来的方法;
3.掌握利用库文件将多模块连接起来的方法。
二、实验内容
假设内存单元中有三个字a、b和c,编写一个程序,它可判断它们能否构成一个三角形,若能,显
示“Y”,否则,显示“N”;
具体要求:
1. 三角形的判断程序为一模块子程序,程序名为:ABC.asm。入口参数:字节变量a、b、c。出口
参数:字节变量d=1是三角形,d=0不是三角形。
2. 主模块程序完成子程序的调用,及判断结果的显示,程序名为:ZHU.asm。
实验五 混合程序的开发实验
一、实验目的
1.了解混合调用中的参数设置;
2. 掌握混合调用的方法;
姓名: 班级:
二、实验内容
P156第5题。