东北大学汇编上机实验3
- 格式:doc
- 大小:46.00 KB
- 文档页数:4
实验一上机操作一、实验目的掌握汇编语言程序编辑、汇编、连接、运行以及利用DEBUG调试程序的方法。
二、实验设备PC机及相应的软件。
三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。
2、利用DEBUG进行程序调试,掌握常用命令的使用方法,观察运行结果。
3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。
上机操作过程:开始输入cmd 确认后显示:C:\Documents and setting\Administrator>-输入 cd c:\masm 后显示:c:\masm>-c:\masm>EDIT ABC.asmc:\masm>MASM ABC;若有语法错,回EDIT下改该程序c:\masm>LINK ABC;若有错,回EDIT下改程序c:\masm>ABC若运行结果错,回EDIT下改程序或在DEBUG下调试,找原因。
c:\masm>DEBUG ABC.exe手写源程序图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄存器的内容按二进制形式显示出来。
设:(BL)=01010011B分析:采用2号功能调用,分别输出30 31 30 31 30 30 31 31显示:01010011参考程序:CODE SEGMENTASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8MOV BL ,53HNEXT:SHL BL ,1 ;将显示位移至CF中JC ONE ;CF=1?MOV DL ,30H ;CF=0,将0的ASCII放在DL中JMP EXITONE:MOV DL ,31H ;CF=1,将1的ASCII放在DL中EXIT:MOV AH ,2INT 21H ;调用DOS功能显示DEC CX ;循环次数减1JNZ NEXT ;判断是否结束MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START上机操作:c:\masm>EDIT ShowBL.asm ;编辑源程序c:\masm>MASM ShowBL ;汇编成ShowBL.objMicrosoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981,1988. All rights reserved.48912 + 447243 Bytes symbol space free0 Warning Errors0 Severe Errorsc:\masm>LINK ShowBL ;连接成ShowBL.exeMicrosoft (R) Overlay Linker Version 3.61Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:\masm>ShowBL ;装载并执行ShowBL.exe 01010011 ;屏幕显示c:\masm>-在DEBUG下查看ShowBL.exe的装入情况:c:\masm>DEBUG ShowBL.exe- R ;查看当前寄存器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53- U CS:0 ;查看程序0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E…….0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21…….-G ;执行程序01010011Program terminated normally-例2:将某段中的字符串“Hello!”传送到另一段中。
实验一串操作一、实验预习要求1、复习8086指令系统中的串操作指令。
2、复习汇编程序的建立、连接、执行和调试的全过程。
3、根据本实验的编程提示及题目要求编写试验中的程序段。
二、编程提示1、定义逻辑段时,所定义的数据段或附加段的缓冲区大小及缓冲区起始地址应与实际的操作需要一致。
;例如定义如下附加段:<附加段名> SEGMENT ;定义附加段ORG 1000H ;定义缓冲区从该逻辑地址为1000H处开始BUFFER DB 10H DUP(?) ;定义缓冲区大小为10H个字节单元<附加段名> ENDS2、任何程序都需要定于代码段。
在代码段中需要初始化所定义的除代码段寄存器之外其他段寄存器,程序代码的最后需要有正常返回DOS的指令。
如下:<代码段名> SEGMENTASSUME CS :<代码段名> ,DS:<数据段名>,ES:<附加段名>START: MOV AX , <数据段名>MOV DS, AXMOV AX, <附加段名>MOV ES,AX【串操作程序代码】MOV AH,4CHINT 21H<代码段名> ENDS三、实验内容1、在代码段中输入以下程序段并运行之,回答问题。
CLDMOV DI,1000HMOV AX,55AAHMOV CX,10HREP STOSW上述程序生成EXE文件,执行后:(1)从ES:1000H开始的16个字单元的内容是什么?(1)DI=?,CX=?解释原因。
DI=1020H CX=0000H REP的功能是重复执行操作至CX=0,而STOSW是每次执行指令都是(DI)←(DI)+2DI=2020 CX=0000 REP的功能是重复执行操作至cx=0,而stosw是每次执行指令都是(DI)<-(DI)+22、在上题的基础上,在代码段中再输入以下程序段并运行,回答下面的问题:MOV SI,1000HMOV DI,2000HMOV CX,20HREP MOVSB程序执行后:(1)从ES:2000H开始的16个字单元的内容是什么?(2)SI=?,DI=?,CX=?分析原因。
实验三汇编语言程序上机过程实验目的:1、掌握常用工具软件 PE,MASM和LINK的使用。
2、伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。
3、利用的 1号功能实现键盘输入的方法。
4、了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。
程序:data segmentmessage db 'This is a sample program of keyboard and disply' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$' data endsstack segment para stack 'stack'db 50 dup(?)stack endscode segmentassume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,axmov dx,offset messagemov ah,9int 21hagain: mov ah,1int 21hcmp al,1bhje exitcmp al,61hjc ndcmp al,7ahja ndand al,11011111bnd: mov dl,almov ah,2int 21hjmp againexit: mov ah,4chint 21hcode endsend start实验步骤:1、用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。
2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。
若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。
3、用TYPE命令显示1产生的.LST文件。
4、用LINK将.OBJ文件连接成可执行的.EXE文件。
5、在DOS状态下运行LINK产生的。
汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。
实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。
程序运行正常,输出结果与预期一致。
实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
汇编语言程序设计上机实验报告(实验三)一、实验题目、内容及要求:一、实验题目、内容及要求:题目:循环程序设计内容:编写一程序,要求从键盘接收一个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)熟悉DOS软中断及系统功能调用。
实验内容
从键盘上输入0-10之间的三个数字,比较其大小,完成三个数从大到小排序。
数的输入写了一个过程,把输入的三个数分别存入缓冲区。
输出显示也写了一个过程,先显示提示,然后按照从大到小的顺序输入显示缓冲区的三个数字。
提示:1.请用字母按键上方的键盘输入数字(不要使用键盘右侧的小键盘键入),以防程序运行错误。
2.输入的三个数字,分别放入AL、BL和CL中。
实验要求
请画出该分支程序排序过程的流程图,并且完善空白部分的源程序并补充分号后面的注释内容。
实验数据及结果
1.该分支程序排序过程的流程图
2.完整的程序源代码以及补充分号后面的注释内容:
3.程序输入数值以及运行程序后显示的结果:
实验过程中所遇到的问题及解决办法。
汇编语言上机实验汇总汇编语言是计算机的低级语言,主要用于编写底层程序和驱动程序。
在学习汇编语言的过程中,学生通常需要进行一定数量的上机实验。
下面是一个汇编语言上机实验的汇总。
1.实验一:环境搭建-目标:搭建汇编语言开发环境2.实验二:基本语法-目标:学习汇编语言的基本语法和指令格式-内容:编写一个简单的汇编程序,包括数据段、代码段和堆栈段,以及常用指令(例如MOV、ADD、SUB、JMP等)的使用。
3.实验三:寄存器和内存操作-目标:熟悉汇编语言中的寄存器和内存的操作-内容:编写一个汇编程序,通过MOV指令将数据从内存中加载到寄存器中,然后进行运算,并将结果存储回内存。
4.实验四:条件分支和循环-目标:掌握汇编语言中的条件分支和循环结构-内容:编写一个汇编程序,使用条件分支指令(例如CMP、JE、JNE 等)实现一个简单的判断语句;然后使用循环指令(例如LOOP)实现一个简单的循环结构。
5.实验五:子程序和参数传递-目标:学习如何创建和调用子程序,并传递参数-内容:编写一个汇编程序,其中包含一个子程序,该子程序接受两个参数并返回它们的和。
然后在主程序中调用该子程序,并输出结果。
6.实验六:中断和异常处理-目标:了解中断和异常处理机制,并在汇编程序中处理中断或异常-内容:编写一个汇编程序,其中包含一个中断处理程序,当发生特定的中断时,该处理程序将执行一些特定的操作。
7.实验七:串操作和文件操作-目标:学习汇编语言中的串操作和文件操作-内容:编写一个汇编程序,使用串操作指令(例如MOVS、LODS、STOS等)操作字符串;然后使用文件操作指令(例如OPEN、READ、WRITE 等)读取或写入文件。
8.实验八:图形和音频处理-目标:了解汇编语言中的图形和音频处理- 内容:编写一个汇编程序,使用图形库(例如BGI、OpenGL、DirectX)绘制简单的图形或运行一个音频文件。
这些上机实验可以帮助学生逐步掌握汇编语言的基本知识和技能,并为以后的高级汇编语言编程打下基础。
汇编语言上机实验报告实验时间:XXXX年XX月XX日实验课程:XXXXX实验室地点:XXXXX一、实验目的:1.熟悉汇编语言的基本语法和指令格式;2.掌握汇编语言程序的编写和调试方法;3.理解汇编语言与计算机硬件之间的关系。
二、实验设备与环境:1.实验设备:个人计算机或计算机终端;2. 实验环境:汇编语言开发工具,如Masm、TASM等。
三、实验内容:本实验通过编写汇编语言程序,实现以下功能:1.输入两个整数,求出其和并输出;2.输入一个正整数,判断其是否为素数并输出结果;3.输入一段字符串,判断其中是否存在一些字符,并输出字符的位置。
四、实验原理与方法:1.汇编语言基本语法:包括数据定义、指令格式、寄存器、标志位等;2.输入输出操作:通过中断调用实现从键盘输入、向屏幕输出;3.常用指令:包括数据传送指令、算术运算指令、逻辑运算指令等;4.判断与分支:通过条件判断指令实现程序流程控制。
五、实验步骤:1. 打开汇编语言开发工具,新建文件,并保存为.asm文件;2.编写程序,包括数据定义、指令编写等;3.进行程序调试,检查程序的正确性和运行结果;4.运行程序,查看程序的输出结果;5.对程序进行优化,确保程序的效率和稳定性;6.编写实验报告,记录实验过程和结论。
六、实验结果与数据分析:1.第一个功能的结果:输入两个整数进行相加并输出;2.第二个功能的结果:输入一个正整数,判断是否为素数并输出结果;3.第三个功能的结果:输入一段字符串,判断是否存在一些字符,并输出字符的位置。
七、实验总结:通过本次实验,我对汇编语言的基本语法和指令格式有了更深入的了解,掌握了汇编语言程序的编写和调试方法,加深对汇编语言与计算机硬件之间关系的理解。
在实验过程中,我遇到了一些困难和问题,但通过不断学习和尝试,最终解决了这些问题。
通过实验,我对汇编语言的应用有了更深入的认识,并体会到了编程的乐趣和挑战。
实验完成后,我深刻感受到了汇编语言的底层性能和灵活性,同时也意识到了其编码复杂和调试困难的一面。
实验三顺序结构程序设计实验一、实验目的1.掌握顺序结构程序的基本设计方法;2.掌握数据传送指令和算术运算指令的用法;3.掌握逻辑操作指令和移位操作指令的用法;4.掌握状态标志位操作指令的用法;5.掌握简单的I/O功能调用。
二、实验要求1.熟练掌握DEBUG中的各命令的使用方法;2.学会利用系统功能调用,来实现键盘输入字符、显示字符的方法;3.学会十进制数字与其对应的ASCII码相互转换的方法;4.学会十六进制数字与其对应的ASCII码相互转换的方法;5.学会利用查表的方法实现代码的转换。
三、实验内容1.编写十六进制数的乘法程序。
要求从键盘上输入两个一位十六进制数据,乘积存入SUM单元。
2.编写程序,求表达式5X+Y的值,要求:X、Y值从键盘输入,X、Y均为一位十六进制数据,将计算结果存入SUM单元。
四、解题思路利用INT 21H的1号功能可以从键盘上输入数据, 通过通用寄存器保存中间结果,完成各项计算功能。
将结果的ASCII码保存在内存单元和DL寄存器中,然后利用INT 21H的2号功能将其输出到屏幕上。
输出到屏幕上一次只能显示4位二进制数,所以一个字节需要分两次才能显示出来。
五、编程实现5.1 内容1DSEG SEGMENTHTAB DB '0123456789ABCDEF'SUM DW 0,0DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEG ;初始化DS寄存器MOV DS,AXMOV AH,01H ;从键盘上输入一个数X(默认放入AL)INT 21HSUB AL,30H ;输入的数据ASIIC码翻译成十六进制MOV BL,AL ;X放入到BL中MOV DL,'*' ;规定要显示的符号必须在DL中MOV AH,02H ;显示’*’INT 21HMOV AH,01H ;从键盘输入第二个数Y(默认放入AL)INT 21HSUB AL,30H ;输入的数据ASIIC码翻译成十六进制MUL BL ;AL*BLMOV SUM,AX ;保存数据到SUM中MOV CH,AL ;利用CH和DH存放MOV DH,ALMOV DL,'=' ;规定要显示的符号必须在DL中MOV AH,02H ;显示‘=’INT 21HMOV CL,4SHR DH,CL ;DH中保存了之前AL中的高四位MOV AL,DH ;查表规定数据必须在AL中LEA BX,HTAB ;利用查表方法显示XLATMOV DL,AL ;显示AL中的高四位MOV AH,02HINT 21HAND CH,0FH ;CH中保存了之前AL中的低四位MOV AL,CH ;查表规定数据必须在AL中XLAT ;查表方法显示MOV DL,ALMOV AH,02HINT 21HMOV AH,4CHINT 21HCSEG ENDSEND START运行结果如下如图3-1图3-15.2 内容2DSEG SEGMENTHTAB DB '0123456789ABCDEF'SUM DW 0,0DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEGMOV DS,AXMOV AH,01H ;从键盘上输入X,默认保存到AL中INT 21HSUB AL,30HMOV BL,5 ;BL中保存数据5MUL BL ;X*5默认保存到AX中MOV CX,AX ;X*5保存在CX中MOV DL,'*' ;屏幕上显示'*'前规定需要保存到DL中MOV AH,02H ;显示’*’INT 21HMOV AL,05H ;利用查表法输出5,之前必须放入到AL中LEA BX,HTAB ;查表获取地址XLAT ;查表转换MOV DL,AL ;屏幕显示数据5之前规定需要放到DL中MOV AH,02H ;显示5INT 21HMOV DL,'+' ;屏幕显示’+’之前规定需要放到DL中MOV AH,02H ;屏幕显示’+’INT 21HMOV AH,01H ;从键盘上输入数据YINT 21HSUB AL,30HMOV BL,AL ;Y保存到BL寄存器中MOV BH,00HADC CX,BX ;实现5X+YMOV SUM,CX ;保存结果MOV DL,'=' ;屏幕显示‘=’之前规定需放入到DL寄存器中MOV AH,02H ;显示’=’INT 21HMOV BH,CL ;保存CL,因为下面指令SHR需用到CL寄存器MOV CH,CL ;保存CL,因为下面指令SHR需用到CL寄存器MOV CL,4SHR BH,CL ;右移4位,即为原来结果的高4位MOV AL,BH ;放到AL中,便于查表转换后显示出来LEA BX,HTAB ;查表XLATMOV DL,AL ;显示结果的高4位MOV AH,02HINT 21HAND CH,0FH ;原来结果低4位处理MOV AL,CH ;查表转换XLATMOV DL,AL ;显示结果低4位MOV AH,02HINT 21HMOV AH,4CHINT 21HCSEG ENDSEND START运行结果如图3-2图3-2六、实验总结6.1 心得体会6.2 遇到的问题实验过程中遇到的问题很多,我就挑典型的几个错误分享一下。
汇编语言上机环境及基本步骤一、实验目的:1.掌握编写汇编源程序的基本格式。
2.熟悉汇编语言上机环境。
3.掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。
4.掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。
二、实验内容:在屏幕上显示并打印字符串“This is a sample program.”三、实验仪器微机一台四、实验步骤:1.在某盘如E盘,以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字符比如zhangsan),将文件MASM.EXE,LINK.EXE等复制到该目录下,编辑的源文件也保存到该目录下。
从WINDOWS进入DOS环境:C:\>2.用EDIT编辑SW1.ASM源文件。
(1). 从当前目录进入自己的目录下,C:\>E: 回车E:\> CD zhangsan ↙回车键入EDIT并回车:E:\ zhangsan>EDIT根据菜单提示进行各种操作。
(2)进入EDIT编辑------EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另存源程序非常方便。
说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,不能选择文本文件(*.txt),否则在编译时会找不到源文件的。
(3).编辑新文件:a、在EDIT编辑器中输入汇编源程序。
b、检查输入有无错误。
c、打开文件菜单FILE→选择另存为SA VE AS┅→输入文件名为:SW1.ASM→保存。
注意:保存到你自己的文件夹中d、若需要修改此文件,用FILE菜单→选择打开OPEN→输入文件名SW1.ASM,即可修改。
修改后注意重新再存盘。
(4).编辑汇编源程序a、在EDIT(或记事本)中输入源程序。
b、检查。
c、存盘。
可保存为SW1.ASM3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。
(1).一般简单程序只需生成.OBJ文件,可键入简化命令:E:\zhangsan>MASM SW1;↙若有错误,则显示错误行号及错误性质,如:SW1.ASM(5):error A2006:undefined symbor:xxxx(2).若有错重新进入EDIT进行修改。
汇编语言上机实验主讲:左琼一、汇编程序的功能1.MASM的功能.检查语法错误,提示错误信息.产生可重定位的目标文件(.OBJ).处理各种伪指令.处理宏库,对于宏指令进行宏扩展.提供包括源程序、目标程序以及符号表在内的汇编列表文件(.LST) .提供一个夹有特定控制字符的符号交叉参考文件(.CRF)。
MASM是一个两次扫描(即从头到尾逐行阅读处理汇编源程序,直到END伪指令)的汇编程序,第一次扫描确定用户自定义符号的值,第二次扫描产生目标代码。
即两次扫描后MASM就能将源程序翻译成目标程序(.OBJ)。
DATA1 SEGMENT USE16A DD A1 ;第二遍扫描处理DATA1 ENDSDATA2 SEGMENT USE16A1 DW 125 ;第一遍扫描处理DATA2 ENDS2.其它汇编程序TASMNASM二、连接程序的功能1.连接程序LINK的功能.将指定的若干个目标模块(OBJ)和子程序库(LIB)中的子程序模块连接在一起,生成一个能够执行的文件(EXE/COM).生成一个地址分配文件(MAP),描述各段的起始地址、结束地址、大小等信息。
三、在PC机上建立、调试、运行汇编源程序的方法1.上机步骤(1)建立与修改汇编源程序文件,扩展名为.asm在WINDOWS98或WIN2000下可用记事本输入汇编源程序,然后以.asm为扩展名存盘。
(2)在DOS窗口下,汇编源文件以产生相应的目标文件(扩展名为.obj):执行命令:MASM DEMO.ASM;(简单方式)或者:MASM DEMO.ASM (交互方式)(3)在DOS窗口下,连接目标文件以建立可执行文件(扩展名为.exe)LINK DEMO; (简单方式)LINK (交互方式)LINK命令还可以连接多个目标文件:LINK DEMO1(主模块名)+DEMO2+DEMO3产生可执行文件DEMO1.EXE2.程序调试(1) 调试工具TD.EXE源代码级调试器,可以调试ASM/C等多种语言程序。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==东北大学编程实验报告篇一:东北大学数据库实验报告 201X数据库实验报告班级:计算机1105班学号:201X3263姓名:张少杰时间:201X年6月19日实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。
实验内容:具体包括如下三部分。
一、熟悉上机环境。
客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 201X)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。
具体包括:1. 了解SQL Server 环境。
鼠标点击开始,进入“Microsoft SQL Server?企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。
点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。
因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。
2. 鼠标点击开始,进入“Microsoft SQL Server?查询分析器”,输入用户名和口令,进入SQL查询分析器。
如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。
3. 在SQL查询分析器环境下,你就可进行SQL命令语句操作了。
二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。
汇编上机实验报告实验名称:汇编上机实验报告1. 实验目的通过完成汇编上机实验,掌握汇编语言的基本概念和语法规则,理解计算机底层运行的原理,加深对计算机体系结构的理解。
2. 实验环境硬件环境:个人电脑一台,操作系统为Windows 10软件环境:MASM汇编语言开发工具(Microsoft Macro Assembler)、DOSBox模拟器3. 实验内容及步骤3.1 实验一:汇编程序基本框架搭建步骤:(1) 在MASM环境下创建一个新的汇编源文件,命名为"lab1.asm"。
(2) 在源文件中编写汇编程序的基本框架,包括段定义、数据定义和代码段等。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,观察程序输出结果。
3.2 实验二:实现简单的数值运算步骤:(1) 按照实验一的步骤,在MASM环境下创建一个新的汇编源文件,命名为"lab2.asm"。
(2) 在源文件中编写汇编程序,实现两个数的相加、相减、相乘和相除等简单的数值运算。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,输入两个数值,观察程序计算结果。
3.3 实验三:字符串处理步骤:(1) 按照实验一的步骤,在MASM环境下创建一个新的汇编源文件,命名为"lab3.asm"。
(2) 在源文件中编写汇编程序,实现字符串的输入、输出和处理。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,输入一个字符串,观察程序对字符串的处理结果。
4. 实验结果与分析实验一:汇编程序基本框架搭建在DOSBox模拟器中成功执行了汇编程序,没有出现任何错误提示,并得到了预期的输出结果。
学号080304235沈阳建筑大学城市建设学院汇编语言程序设计上机实验报告2010~2011第2 学期专业班级:计算机08-2班姓名:董宇亮上机时间:指导教师:杜利明年月日1.实验目的掌握汇编程序的循环结构程序设计方法。
2.实验要求1.掌握多重循环程序和排序程序设计方法。
2.掌握带符号数的比较转移指令:JL,JLE,JG,JGE3.实验指令内容建立学生名次表,以grade为首地址的数组中保存了学生的成绩,其中grade+i 保存学号为i+1的学生的成绩。
要求建立一个10个字的rank数组,并根据grade中的学生成绩将学生名次填入rank 数组中,其中rank+i的内容是学号为i+1学生的名次(提示:一个学生的名次等于成绩高于该学生的人数加1)4.实验步骤1.输入,汇编并连接此程序。
2.在DEBUG下运行此程序,记录运行结果。
3.将转移指令JGE改为JG,JL,JLE分别运行记录排序结果,察看结果是否正确不对,并分析原因。
5.程序(指令)清单DA TAS SEGMENT;此处输入数据段代码GRADE DW 79,85,58,45,78,36,98,85,48,72;自行定义;成绩COUNT EQU ($-GRADE)/2RANK DW COUNT DUP (1) ;排名,初始值为1,大家都第一名,同一起跑线哈DA TAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX;此处输入代码段代码MOV SI,0 ;要排名的学生号码MOV CX,COUNTL1:MOV AX,GRADE[SI] ;获得第SI号学生的成绩MOV BX,RANK[SI] ;获得第SI号学生的初始排名MOV DX,CX ;保存CXMOV DI,0 ;要比较的学生的号码MOV CX,COUNTL2:CMP AX,GRADE[DI] ;逐个比较JNB L3INC BX ;低于某一个学生的成绩,则排名加1 L3:ADD DI,2LOOP L2MOV RANK[SI],BX ;保存排名ADD SI,2MOV CX,DXLOOP L1MOV AH,4CHINT 21HCODES ENDSEND START6. 程序运行结果7.实验心得。
汇编语言上机实验报告汇编语言上机实验报告引言:汇编语言是一种底层的计算机语言,通过使用汇编语言,我们可以更加深入地了解计算机的运行原理和底层机制。
本次实验旨在通过上机实践,掌握汇编语言的基本语法和编程技巧,同时加深对计算机底层的理解。
实验目的:1. 学习汇编语言的基本语法和指令集;2. 掌握汇编语言的程序设计和调试方法;3. 加深对计算机底层原理的理解。
实验环境:本次实验使用的是Windows操作系统,并安装了MASM汇编语言开发工具。
实验过程:1. 实验一:Hello World程序我们首先编写一个简单的Hello World程序,用于验证汇编语言的环境是否正常。
通过使用MASM工具,我们可以将源代码汇编成可执行文件,并在命令行中运行。
该程序的功能是在屏幕上输出"Hello World"。
```assembly.model small.stack 100h.datamsg db 'Hello World$'.codemain procmov ah, 09hlea dx, msgint 21hmov ah, 4chint 21hmain endpend main```通过编译、链接和运行,我们可以在屏幕上看到"Hello World"的输出。
2. 实验二:计算两个数的和在这个实验中,我们将学习如何编写一个简单的加法程序。
我们定义两个变量a和b,并将其值相加,然后将结果输出到屏幕上。
```assembly.model small.stack 100h.dataa db 10b db 20sum db ?.codemain procmov al, aadd al, bmov sum, almov ah, 09hmov dl, sumadd dl, 30hint 21hmov ah, 4chint 21hmain endpend main```在屏幕上,我们可以看到输出结果为"30",即10加20的和。
实验三顺序结构程序设计实验
一、实验目的
1.掌握顺序结构程序的基本设计方法;
2.掌握数据传送指令和算术运算指令的用法;
3.掌握逻辑操作指令和移位操作指令的用法;
4.掌握状态标志位操作指令的用法;
5.掌握简单的I/O功能调用。
二、实验要求
1.熟练掌握DEBUG中的各命令的使用方法;
2.学会利用系统功能调用,来实现键盘输入字符、显示字符的方法;
3.学会十进制数字与其对应的ASCII码相互转换的方法;
4.学会十六进制数字与其对应的ASCII码相互转换的方法;
5.学会利用查表的方法实现代码的转换。
三、实验内容
1.编写十六进制数的乘法程序。
要求从键盘上输入两个一位十六进制数据,乘积存入SUM单元。
2.编写程序,求表达式5X+Y的值,要求:X、Y值从键盘输入,X、Y均为一位十六进制数据,将计算结果存入SUM单元。
四、解题思路
利用INT 21H的1号功能可以从键盘上输入数据, 通过通用寄存器保存中间结果,完成各项计算功能。
将结果的ASCII码保存在内存单元和DL寄存器中,然后利用INT 21H的2号功能将其输出到屏幕上。
输出到屏幕上一次只能显示4位二进制数,所以一个字节需要分两次才能显示出来。
五、编程实现
5.1 内容1
DSEG SEGMENT
HTAB DB '0123456789ABCDEF'
SUM DW 0,0
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG ;初始化DS寄存器
MOV DS,AX
MOV AH,01H ;从键盘上输入一个数X(默认放入AL)
INT 21H
SUB AL,30H ;输入的数据ASIIC码翻译成十六进制
MOV BL,AL ;X放入到BL中
MOV DL,'*' ;规定要显示的符号必须在DL中
MOV AH,02H ;显示’*’
INT 21H
MOV AH,01H ;从键盘输入第二个数Y(默认放入AL)
INT 21H
SUB AL,30H ;输入的数据ASIIC码翻译成十六进制
MUL BL ;AL*BL
MOV SUM,AX ;保存数据到SUM中
MOV CH,AL ;利用CH和DH存放
MOV DH,AL
MOV DL,'=' ;规定要显示的符号必须在DL中
MOV AH,02H ;显示‘=’
INT 21H
MOV CL,4
SHR DH,CL ;DH中保存了之前AL中的高四位
MOV AL,DH ;查表规定数据必须在AL中
LEA BX,HTAB ;利用查表方法显示
XLAT
MOV DL,AL ;显示AL中的高四位
MOV AH,02H
INT 21H
AND CH,0FH ;CH中保存了之前AL中的低四位
MOV AL,CH ;查表规定数据必须在AL中
XLAT ;查表方法显示
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CSEG ENDS
END START
运行结果如下如图3-1
图3-1
5.2 内容2
DSEG SEGMENT
HTAB DB '0123456789ABCDEF'
SUM DW 0,0
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV AH,01H ;从键盘上输入X,默认保存到AL中
INT 21H
SUB AL,30H
MOV BL,5 ;BL中保存数据5
MUL BL ;X*5默认保存到AX中
MOV CX,AX ;X*5保存在CX中
MOV DL,'*' ;屏幕上显示'*'前规定需要保存到DL中
MOV AH,02H ;显示’*’
INT 21H
MOV AL,05H ;利用查表法输出5,之前必须放入到AL中
LEA BX,HTAB ;查表获取地址
XLAT ;查表转换
MOV DL,AL ;屏幕显示数据5之前规定需要放到DL中
MOV AH,02H ;显示5
INT 21H
MOV DL,'+' ;屏幕显示’+’之前规定需要放到DL中
MOV AH,02H ;屏幕显示’+’
INT 21H
MOV AH,01H ;从键盘上输入数据Y
INT 21H
SUB AL,30H
MOV BL,AL ;Y保存到BL寄存器中
MOV BH,00H
ADC CX,BX ;实现5X+Y
MOV SUM,CX ;保存结果
MOV DL,'=' ;屏幕显示‘=’之前规定需放入到DL寄存器中
MOV AH,02H ;显示’=’
INT 21H
MOV BH,CL ;保存CL,因为下面指令SHR需用到CL寄存器
MOV CH,CL ;保存CL,因为下面指令SHR需用到CL寄存器
MOV CL,4
SHR BH,CL ;右移4位,即为原来结果的高4位
MOV AL,BH ;放到AL中,便于查表转换后显示出来
LEA BX,HTAB ;查表
XLAT
MOV DL,AL ;显示结果的高4位
MOV AH,02H
INT 21H
AND CH,0FH ;原来结果低4位处理
MOV AL,CH ;查表转换
XLAT
MOV DL,AL ;显示结果低4位
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CSEG ENDS
END START
运行结果如图3-2
图3-2
六、实验总结
6.1 心得体会
6.2 遇到的问题
实验过程中遇到的问题很多,我就挑典型的几个错误分享一下。
1.实验内容1中,INT 21H会改变AL中的值,所以AL中的数据要在该语句之前保存;
2.实验内容2中,我刚刚开始输入Y时忘记写SUB AL,30H,后来运行结果屏幕显示的结果总是比实际结果大3,这个错误找了很久,给我印象深刻。