汇编语言实验报告格式

合集下载

汇编语言实验报告模板

汇编语言实验报告模板

实验报告姓名杨少雄 学号 113200********* 专业年级 09医学信息医学信息 实验题目 微机原理第1次实验次实验实验目的 掌握汇编语言程序的开发过程—编辑、汇编、链接,调试学会用CodeView 调试程序调试程序掌握汇编语言源程序的设计方法掌握汇编语言源程序的设计方法实验内容 (必做)实验内容1:编程实现将寄存器BL 的符号扩展到BH 中。

即若BL 最高位为0,则BH=0;若BL 最高位为1,则BH=0FFH (必做)实验内容2:编程实现记录字符串中空格出现的次数。

即记录变量SSSS 开始顺序存放的的18个字节的字符串中空格出现的次数,并将其放于变量SP ACE 中(选做)实验内容:汇编语言程序自选(如作业、课件例题)实验分析一、 实验一比较简单,利用test 判断最高位然后进行相应的程序转移即刻。

下面是结果截图:1、BL 高位为1的情况下,BH 为0FFH 2、BL 高位为0的情况下,BH 为00H二、在实验二一开始发现寄存器dl无法记录空格的数量,后来也无法发现程序错误,就直接改变思路,改算法,终于成功实现功能。

附录(源程序等)实验一:.model small.data ;定义数据段定义数据段.code ;定义代码段定义代码段 start: xor bh,bhmov bl,4fhtest bl,80hjz donemov bh,0ffhdone: hlt.exit 0 ;程序正常执行结束程序正常执行结束 end start ;汇编结束汇编结束实验二:.model small.datassss db 'abc def ghi jkl mn'SPACE db ? ;定义数据段定义数据段.code ;定义代码段定义代码段 start:mov ax,@data ;程序起始点,建立程序起始点,建立DSDS mov ds,axmov cx,18mov dl,1mov bx,offset ssssagain: cmp [bx],' 'jne nextinc dlnext: inc bxloop againmov SPACE,dldone: hlt程序正常执行结束 .exit 0 ;程序正常执行结束汇编结束end start ;汇编结束。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告网工141 郑逸一、不同的寻址方式调用数据1.立即数寻址代码段:mov ax,10002.直接寻址代码段:mov ax,1200mov [1000],axmov bx,[1000]注意事项:默认段位数据段(即[1000] == ds:[1000])3.间接寻址代码段:mov ax,1200mov [1000],axmov ax,0000mov bx,1000mov ax,[bx]注意事项:1.[R]--R只能是4个16位通用寄存器(BX,DI,SI,BP)当中的一个其余的寄存器不能使用寄存器的间接寻址法2.其中默认段仍然是数据段,但允许进行段超越(例如:SS:[BX],即将SS段当中的数据进行转移)4.变址寻址代码段:mov ax,1200mov [1002],axmov ax,0000mov bx,500mov ax,2[500*2](dosbox环境下貌似不支持直接打出*符号,因此在试验当中我直接使用1000进行代替)使用格式: [R*F+V]其中R是寄存器,F是比例因子(可为1、2、4、8),V是位移量(当R是16位寄存器时,V也不应该超过16,另外v 是一个符号数)5.基址加变址寻址基址寄存器:BX、BP变址寄存器:SI、DI使用格式:V[BR][IR*F]代码段:mov ax,1200mov [1002],axmov ax,0000mov bx,900mov si,700(注意这里的运算方式是16进制)mov ax,2[bx][si]注意事项:1.当BR=BX时,默认段寄存器为数据段寄存器DS当BR=BP时,默认段寄存器为堆栈段寄存器SS2.基址加变址寻址方式主要运用于对二维表格的操作二、使用masm 和link对文件进行编译三、一些常用的机器指令语句1.实验目的:测试循环程序测试目前常用的指令2.实验内容:用循环实现累加的语句,并且将数字保存在内存当中3.实验代码:4.实验步骤:a)设置数据段,‘$’字符在汇编当中可以截断数据段自此往后的内容不进行显示;b)行10 :MOV AH,09H 调用系统自带的功能,09H的功能为显示,显示内容为以ds为段地址,dx为偏移地址的内存当中的内容;c)行15 :AGAIN是循环段 JNZ是通过判断flag寄存器当中的ZF位(全零判断位)来判断是否执行循环,AGAIN是一个标记字符,用来标记循环开始代码段的偏移地址;d)循环体当中所涉及到的一些指令:1.ADD指令,加法指令:ADD AX,BX 将AX和BX中的内容相加送进AX进行保存;2.INC指令,累加指令:INC AX 使AX当中的内容+1;3.DEC指令,减1指令:DEC CX 使CS当中的内容-1;e)行20 : OFFSET指令:和LEA指令具有相同含义,取后面内容的偏移地址;f)行25 : XLAG指令:XLAG AX,BX 交换两个寄存器当中的内容,同时需要保证两个寄存器的字长相同;g)行41 : MOV AH,4CH 调用系统功能,结束当前的代码段;5.实验结果显示一行字符串,并且显示累加(3+2+1)的结果。

《汇编语言》实验报告

《汇编语言》实验报告

《汇编语言》实验报告实验名称:汇编语言实验报告实验目的:通过实验了解汇编语言的基本概念、语法结构和程序设计方法,掌握汇编语言的编写方法。

实验时间:2024年1月1日实验地点:实验室一、实验背景汇编语言是计算机硬件和软件之间的桥梁,通过汇编语言可以直接操作计算机的底层硬件。

汇编语言是一种低级语言,使用汇编语言可以实现对计算机内存、寄存器等硬件资源的直接操作,从而实现程序的功能。

本实验通过编写汇编语言程序,加深对汇编语言的理解。

二、实验过程1. 确定实验环境:使用DOSBox模拟DOS环境进行汇编程序编写和调试。

2. 编写第一个汇编程序:编写一个简单的汇编程序,将字符串“Hello, World!”输出到屏幕上。

3.程序分析:a.定义要输出的字符串,将字符串存储在数据段中。

b.设置段寄存器,将数据段地址加载到DS寄存器中。

c.设置显示模式和光标位置。

d.将字符串逐个字符输出到屏幕上。

e.关闭显示模式。

4. 编译运行:使用汇编语言的编译器将汇编程序转换成机器码,并在DOSBox中运行程序。

5.调试程序:根据程序运行结果和分析,调试程序中存在的错误,并进行改正。

三、实验结果与分析经过多次编写和调试,我们成功实现了将字符串“Hello, World!”输出到屏幕上的功能。

通过程序分析和调试过程,加深了对汇编语言的理解和掌握。

四、实验总结通过本次实验,我们深入了解了汇编语言的基本概念、语法结构和程序设计方法。

通过实际编写汇编语言程序,对汇编语言的编写方法有了更加深入的认识。

同时,通过调试程序的过程,我们也提高了自身的问题解决能力和分析能力。

在今后的学习和工作中,我们将继续学习和深入研究汇编语言,提高自己的编程能力和创新思维能力。

总体而言,本次实验给我们带来了很大的收获,我们以后将更加努力地学习汇编语言,提高自己的编程水平,为以后的学习和工作做好充分的准备。

汇编语言综合实验报告

汇编语言综合实验报告

XXXX大学XX学院实验报告课程名称:汇编语言学号:姓名:系:专业:年级:指导教师:职称:20xx~20xx学年第一学期实验项目列表序号实验项目名称成绩指导教师1 实验一汇编程序的汇编及运行2 实验二顺序程序设计3 实验三分支循环程序设计4 实验四 DOS功能调用5 实验五子程序设计总平均福建农林大学金山学院实验报告系:专业:年级:姓名:学号:实验课程:汇编语言实验室号:__ __ 实验设备号:实验时间: 90分钟指导教师签字:成绩:实验一汇编程序的汇编及运行1.实验目的和要求(1)熟悉汇编程序的汇编、连接、执行过程(2)生成LST文件,查看LST文件(3)生成OBJ文件,修改语法错误(4)生成EXE文件(5)执行2.实验环境IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。

3.实验内容及实验数据记录(1)将数据段输入,取名1.txt,保存在MASM文件夹下。

生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。

试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DA TA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB ‘IBM PC’DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATA ENDSEND(2)输入有错误的文件,修改错误语句。

(MASM没有出现错误即可。

不必连接、运行。

)DA TA SEGMENTV AR1 DB 0, 25, ODH, 300V AR2 DB 12H, A4H, 6BHV AR3 DB ’ABCDEF’V AR4 DW 1234H, 5678HV AR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DE: DATABEING MOV AX, DA TAMOV DS, AXLEA SI, V AR5MOV BX, OFFSET VAR2MOV [SI], 0ABHMOV AX, V AR1+2MOV [BX], [SI]MOV V AR5+4, V AR4MOV AH, 4CHINT 21HCODE ENDSEND START(3)输入正确的程序,汇编、连接、运行STACKS SEGMENT STACKDW 128 DUP(?)STACKS ENDSDATAS SEGMENTSTRING DB ‘WELCOME!’, 13, 10, ‘$’DATAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATASSTART:MOV AX, DA TASMOV DS, AXLEA DX, STRINGMOV AH, 9INT 21HMOV AH, 4CHINT 21HCODES ENDSEND START4.算法描述及实验步骤1、DA1,DA2的偏移量分别为0020 和0026COUNT的值为00082、修改后程序如下:DA TA SEGMENTV AR1 DB 0, 25, 0DH, 30V AR2 DB 12H, 0A4H, 6BHV AR3 DB 'ABCDEF'V AR4 DW 1234H, 5678HV AR5 DW 10H DUP(?)DA TA ENDSCODE SEGMENTASSUME CS: CODE, DS: DA TA BEING: MOV AX, DA TAMOV DS, AXLEA SI, V AR5MOV BX, OFFSET V AR2MOV byte ptr[SI], 0ABHMOV AL, V AR1+2MOV AX, [SI]MOV [BX], AXMOV AX, V AR4MOV V AR5+4, AXMOV AH, 4CHINT 21HCODE ENDSEND BEING5.调试过程由上图可知有9个错误,进入2.lst查看错误2.ASM(2): error A2009: Symbol not defined: ODH 表示没有定义ODHV AR1 DB 0, 25, ODH, 300 是定义变量V AR1 为字节类型V AR1所指向的地址单元的内容从低到高为0, 25, ODH, 300 这里的ODH应该为16进制数的0DH修改之后再次调试出现错误2.ASM(2): error A2050: Value out of range 表示越界,因为V AR1是被定义为字节变量,而有一个数据是300 明显超出字节范围修改为30之后继续调试2.ASM(3): error A2009: Symbol not defined: A4H 没有定义A4H这个变量V AR2 DB 12H, A4H, 6BH 这里的A4H是作为16进制并不是被定义为变量,但是由于字母开头的16进制数被默认为变量,必须在A4H之前加0.,将其改为0A4H2.ASM(21): error A2009: Symbol not defined: START 没有定义STARTEND START 这里的END应该跟上面的BEING:对应,所以可以把END START改为END BEING2.ASM(9): error A2009: Symbol not defined: DE 没有定义DEASSUME CS: CODE, DE: DATA 这里的意思本为将CODE存入代码段,将DA TA存入数据段,应该将DE改为DS2.ASM(10): error A2105: Expected: instruction or directive 这一句看不懂表示压力很大,百度告诉我是指令助记符输入错误,不过一眼看过去就知道那个BEING后面漏了“:”2.ASM(14): error A2035: Operand must have size 必须指明大小MOV [SI], 0ABH 这一句是立即数存入内存中,当立即数存入内存时必须指明大小让系统开辟空间由于0ABH 可看成是字节所以将这一句加入byte ptr 即MOV byte ptr[SI], 0ABH2.ASM(15): error A2068: Cannot address with segment registerMOV AX, VAR1+2 这句话实际上是把V AR1的地址+2后的内容存入AX ,V AR1+2的内容也是字节类型,占8位而AX寄存器为16位,所以位数不匹配,应该把AX改为AL 或者AH2.ASM(16): error A2052: Improper operand typeMOV [BX], [SI] ,MOV指令不允许源操作数和目标操作数都是内存。

汇编语言实验报告..【范本模板】

汇编语言实验报告..【范本模板】

汇编语言课程设计学院:专业:姓名:学号:汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法.汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。

目录1 利用DEBUG调试汇编语言程序段………………………………………2 初级程序的编写与调试实验(一) .................................................................................3 初级程序的编写与调试实验(二)………………………………………...4 汇编语言程序上机过程 .......................................................................................................... 5分支程序实验……………………………………………………………6 循环程序实验…………………………………………………………….。

1 利用DEBUG调试汇编语言程序段一.课程目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段.二.课程内容1.进入和退出DEBUG程序;2.学会DEBUG中的1)D命令(显示内存数据D 段地址:偏移地址)例1:-D1002)E命令(修改指定内存)例1:—E100 41 42 43 44 48 47 46 45-D 100,L08结果:08F1:0100 41 42 43 44 48 47 46 45例2:—E 100:08F1:0100 76 42 :42是操作员键入此命令是将原100号内存内容76修改为42,用D命令可察看。

3)R命令(显示当前寄存器的内容)4)T命令(设置陷井,单步执行)5)A命令(将指令直接汇编成机器码输入到内存中。

汇编实验报告模板

汇编实验报告模板

嘉应学院计算机学院实验报告课程名称:汇编语言程序设计开课学期:2017-2018学年第1学期班级:1501指导老师:陈生庆实验题目:Debug的使用方法学号:151110050姓名:余滔港一、实验目的:了解debug界面,对debug的一般操作有一定的了解,并使用debug中的汇编、传送、反汇编、单步跟踪命令、检查修改寄存器的命令、查看存储单元内容、多步执行等对debug进行相关的操作。

二.实验内容1、-a指令:汇编汇编的mov指令:传送指令2、-d指令:查看存储单元内容3、-u指令:反汇编4、-r指令:检查、修改寄存器的命令5、-t指令:单步跟踪命令6、-e指令:修改存储单元内容7、-g指令:多步执行四、实验过程与运行结果void hanoi(int n, int a, int b, int c) {if (n <= 0) return;hanoi(n-1, a, c, b);move(n, a, c);hanoi(n-1, b, a, c);}int main() {hanoi(3, 'a', 'b', 'c');return0;}1)在debug中,输入a即进入汇编模式,可输入汇编指令,依次输入:mov ax,1234mov bx,axmov ax,[1234]mov ax,[bx]mov ax,[bx]1234mov cx,[bx][si]2)再输入d 13cd:0100查看13cd:0100之后的存储单元内容,结果如图所示:3)输入u即可查看之前汇编指令的反汇编代码:4)输入r即可检查寄存器当前情况:5)输入t单步跟踪命令,即可单步执行之前输入的汇编指令:再次输入则继续下一步(mov bx,ax):6)输入e 13cd:1234即可修改ds:1234中的值(修改为4321并输入d 13cd:1234查看):7)输入t继续执行:8)输入r bx修改bx中的值:9)再次输入t执行下一步:10)输入e 13cd:2234修改储存单元的值,并输入t执行:五、实验总结(小四号字,宋体)1 .回答试验指导后面的思考题思考:这次运行还是打入T,行不行?怎么办?用R命令检查一下IP的内容。

汇编实验报告(详细版)

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告)内容: 实验一、六、七、八院系专业:计算机学院计算机科学与技术姓名:xxxxxxxxx学号:*******xxxxx完成时间:2012年12月1日计算机组成与汇编语言实验报告printf("输入的二进制数不正确!!");break;}}}if(a[15]=='1')s++;for(i=1;i<16;i++){if(a[15-i]=='1')s+=(1<<i);}printf("二进制: ");puts(a);printf("对应的十进制为: ");printf("%d\n",s);}程序1运行结果:实验情况与体会:运行过程中出现过不能判断是否输错的情况以及权位判断有误等情况,经过思考和修改后修改正确,说明理解好二进制与十进制之间的转换过程很重要。

编程过程中主要碰到的问题是,不够十六位的时候要在前面补零。

转换方法主要是除二求余的方法。

注:篇幅不够,可以另外附页。

计算机组成与汇编语言实验报告姓名xxxx 学号2011004xxxx 计分专业软件工程班级xxxxx 实验日期2012年 12 月 1日实验名称实验六分支结构程序设计实验目的●熟悉有符号定点数的表示。

●掌握原码、补码、反码之间的相互转换程序设计。

实验内容说明:该程序中X=23,Y=45,他们之差的绝对值为22,用16进制表示为0016H,即图中显示的结果2.调试程序2:DATA SEGMENTADD AL, 07HLP4: ADD AL, 30H ;将低四位转化为相应的ASCII码并以字符形式输MOV DL, ALMOV AH, 2INT 21HMOV AH, 4CHINT 21HCODE ENDSEND START上机运行该程序并检查运行结果是否正确。

上机实验过程:说明:求出三个数里面的最大数73;3. 编写程序1:编程实现从键盘输入一位数字,判断其奇偶性,并在屏幕上输出一个标志,若为奇数,则输出1,否则输出0。

汇编语言实验报告

汇编语言实验报告

中南大学汇编语言课程实验报告课题名称:汇编语言课程实验报告学院:信息科学与工程学院班级: XXXXXXXX 学号: XXXXXXXXXX 姓名: HEIO·RAY 指导老师: XXXXXXX实验一、简单的程序建立过程以及简化段定义一、实验目的1.熟悉汇编过程2.熟悉并掌握简化段定义方式方法二、实验过程1.实例汇编程序2.针对例题进行汇编语言设计三、实验代码1.完整代码部分;name it ex_movs;----------------------------------------------------------------- data segmentsource_buffer db 40 dup(‘a’) data ends;----------------------------------------------------------------- extra segmentdest_buffer db 40 dup(?)extra ends;----------------------------------------------------------------- code segment;----------------------------------------------------------------- main proc farassume cs:code,ds:data,es:extrastart:push dssub ax,axpush axmov ax,datamov ds,axlea si,source_bufferlea di,dest_buffercldmov cx,40rep movsbretmain endp;-------------------------------------------------------code ends;-------------------------------------------------------end start2.简化段定义代码.model small.datasource_buffer db 40 dup(‘a’) .fardatadest_buffer db 40 dup(?) .codestart:lea si,source_bufferlea di,dest_buffercldmov cx,40rep movsbend start实验二、循环与分支结构程序设计一、实验目的1、熟悉并掌握循环分支结构程序设计的要点。

汇编语言实验报告模板

汇编语言实验报告模板

《汇编语言》实验报告班级网131学号139074272姓名王祥兵指导教师刘恒实验一汇编语言运行环境及方法、简单程序设计一、实验目的:1、熟悉汇编语言运行环境和方法2、了解如何使用汇编语言的编制程序。

3、熟悉DEBUG有关命令的使用方法。

4、利用DEBUG掌握有关指令的功能。

5、利用DEBUG运行简单的程序段。

二、实验内容:编写一程序:比较两个字符串string1和string2所含的字符是否相同。

若相同则显示‘match’,否则‘No match’。

三、实验步骤:1.在dos提示符下,进入MASM目录2.在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编,链接和运行3.记录每一步的命令,以及查看结果的方法四、程序代码:五、实验总结及教训1.代码运行结果:2.debug调试结果:熟悉了汇编环境的使用,学会了用debug来调试程序实验二:用DEBUG编程:使用堆栈段将AX和BX的内容进行交换一、实验目的:1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。

3、掌握简单指令的执行过程。

二、实验内容:1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。

2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG 的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。

在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX 中的内容是什么。

程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT三、实验要求:1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告
1. 实验简介
本次实验是针对汇编语言的学习和实践,在实验中,我们将学习如何使用汇编语言编写程序、调试程序,并通过一系列实例来练习和巩固所学知识。

2. 实验目的
(这一部分可以根据实际情况来写,列举实验的具体目的和要求)
3. 实验环境及工具
(介绍实验所使用的软件环境和工具,如:编译器、调试器)
4. 实验步骤
(根据实验内容具体描述实验步骤,可以分为多个小节)
4.1 准备工作
在开始实验之前,需要进行一些准备工作,包括安装编译器、创建工作环境等。

4.2 实验一:简单的汇编程序
本实验通过编写一个简单的汇编程序来熟悉汇编语言的基本语法和指令集,包括数据传送、算术运算、逻辑运算等。

4.3 实验二:汇编程序的调试
在实验二中,我们将学习如何使用调试器对汇编程序进行调试,包括设置断点、查看变量值、单步执行等操作。

4.4 实验三:汇编程序的优化
本实验将通过优化代码来提高程序的执行效率,包括减少指令的使用、优化循环结构等。

5. 实验结果与分析
(对实验的结果进行总结和分析,可以包括程序的输出结果、性能分析等)
6. 实验总结
(针对本次实验的收获和心得体会进行总结,可以包括对汇编语言的理解、解决问题的思路等)
7. 实验感想
(对本次实验的感想和建议,如实验过程中遇到的困难、改进的方向等)
8. 参考文献
(列出本报告中所引用的参考文献)
注:该文章只是按照题目提示给出了一个大致的框架和构思,实际根据具体的实验内容和要求来编写每个小节的详细内容。

希望对你有所帮助!。

汇编实验报告

汇编实验报告

汇编实验报告一、实验目的本次汇编实验的主要目的是深入理解计算机底层的工作原理,掌握汇编语言的基本语法和编程技巧,能够运用汇编语言编写简单的程序来实现特定的功能。

通过实践操作,提高对计算机体系结构的认识,培养解决实际问题的能力。

二、实验环境本次实验使用的操作系统为 Windows 10,汇编语言编译器为MASM 615。

三、实验内容(一)数据传送与算术运算1、编写程序实现将两个 16 位的整数相加,并将结果存储在指定的内存单元中。

2、实现数据在不同寄存器和内存单元之间的传送。

(二)逻辑运算与移位操作1、对给定的两个字节数据进行逻辑与、或、异或操作,并观察结果。

2、进行移位操作,包括左移和右移,理解移位对数据的影响。

(三)循环与分支结构1、利用循环结构计算 1 到 100 的整数之和。

2、根据给定的条件,使用分支结构实现不同的操作。

(四)子程序调用1、编写一个子程序,实现两个数的乘法运算。

2、在主程序中调用该子程序,并输出结果。

四、实验步骤(一)数据传送与算术运算1、打开 MASM 编译器,新建一个汇编源文件。

2、使用`MOV` 指令进行数据传送,将两个整数分别存储在寄存器`AX` 和`BX` 中。

3、使用`ADD` 指令将两个数相加,结果存储在`CX` 寄存器中。

4、最后,使用`MOV` 指令将结果存储到指定的内存单元。

(二)逻辑运算与移位操作1、在源文件中定义两个字节变量,并初始化其值。

2、使用逻辑运算指令(如`AND`、`OR`、`XOR`)对这两个变量进行操作。

3、使用移位指令(如`SHL`、`SHR`)对变量进行移位,并观察结果。

(三)循环与分支结构1、对于循环结构,使用`LOOP` 指令实现从 1 到 100 的累加。

2、在分支结构中,根据给定的条件(如比较两个数的大小),使用`JZ`、`JL` 等指令执行不同的分支操作。

(四)子程序调用1、定义一个子程序,使用参数传递的方式接收两个数,并进行乘法运算。

汇编语言——实习报告【范本模板】

汇编语言——实习报告【范本模板】

重庆交通大学实习报告专业:电子信息工程学号: 631226030115姓名:吴双彪实习所属课程: 微型计算机原理与汇编语言实验室(中心):国际学院计算机实验室指导教师:胡勇实验平均成绩:一、实习任务及要求1、任务:从键盘输入一组数,按升序排列该数,并再次输入一个数,插入到该数组中,并输出新数组的数据。

2、要求:(1) 使用emu8086 软件编写汇编程序;(2)自主编写程序,编程方法不限,并独立完成实习报告.二、实习目的1、掌握编写完整汇编语言源程序的方法,掌握伪指令用法,掌握汇编、连接等将源程序转换为可执行代码的必要步骤,了解汇编语言表达形式。

2、掌握寻址方式,熟悉常用指令的功能和用法.3、掌握使用emu8086对程序进行调试的方法。

三、实习内容1、任务功能分析根据任务描述,可定义一个数组array用来存储输入的数,变量count用来存储输入数的个数;定义input子模块实现输入功能,intput2子模块实现插入数据,sort 子模块实现升序排序,display子模块讲结果显示到屏幕.设计一个主程序main,调用input,sort,display子程序,调用intput2子模块和再次调用sort,display子程序便可实现数据插入及再次排序。

为了达到层次显示的效果,还需定义一个换行输出的子模块crlf。

2、任务子模块功能分析1、input子模块:首先找到数组array的首地址,在input子模块中再定义一个newchar子模块,用语句“loop newchar”实现数据的重复输入,在input中定义了每个数最多只能输入3位,且每个数据以空格结束输入,回车结束全部数据输入.2、sort 子模块:采用冒泡排序法对已输入的数进行升序排序。

3、display 子程序:同input 子模块类似,需要先找到数组array 的首地址,在定义一个内嵌的repeat 子模块,用语句“loop repeat"实现数据的重复输出。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告一、实验目的本次汇编语言实验的主要目的是通过实际操作和编程实践,深入理解汇编语言的基本概念、指令系统和编程方法,提高对计算机底层硬件操作的认识和编程能力。

二、实验环境1、操作系统:Windows 102、编程工具:MASM(Microsoft Macro Assembler)三、实验内容1、数据传送与算术运算实现两个 16 位整数的加法和减法运算,并将结果存储在指定的内存单元中。

使用不同的数据传送指令,如 MOV、PUSH、POP 等,将数据在寄存器和内存之间进行传输。

2、逻辑运算与移位操作对给定的 8 位二进制数据进行逻辑与、或、异或运算,并观察结果。

执行移位操作,包括逻辑移位(SHL、SHR)和算术移位(SAL、SAR),理解移位对数据的影响。

3、分支与循环结构使用条件跳转指令(如 JZ、JE、JC 等)实现根据不同条件执行不同代码段的功能。

编写循环结构程序,如使用 LOOP 指令实现对数组元素的求和操作。

4、子程序调用定义一个子程序,实现特定的功能,如计算一个数的阶乘。

在主程序中调用子程序,并传递参数和获取返回值。

四、实验步骤1、数据传送与算术运算实验首先,在代码编辑器中编写汇编代码,定义数据段和代码段。

在数据段中初始化两个 16 位整数,例如 MOV WORD PTR DATA1, 1000H 和 MOV WORD PTR DATA2, 2000H 。

在代码段中使用 ADD 和 SUB 指令进行加法和减法运算,如 ADD WORD PTR RESULT_ADD, DATA1 和 SUB WORD PTRRESULT_SUB, DATA2 。

编译和链接代码,生成可执行文件。

运行程序,查看内存中存储的运算结果。

2、逻辑运算与移位操作实验类似地,定义数据段和代码段。

在数据段中初始化 8 位二进制数据,如 MOV AL, 01010101B 。

在代码段中使用AND、OR、XOR 指令进行逻辑运算,以及SHL、SHR、SAL、SAR 指令进行移位操作。

汇编语言实验报告

汇编语言实验报告

实验报告一:汇编语言实验基础一.实验目的:1. 熟悉汇编语言程序的开发过程以及汇编语言常用软件的使用方法2. 掌握DEBUG常用命令的使用方法二、实验内容:1.DEBUG 命令使用2.8088常用指令练习三、实验步骤:(一)DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示符'_ '。

2、用命令 F 100 10F 'A' 将'A'的ASCII码填入内存。

3、用命令 D 100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。

4、用命令 F 110 11F 41 重复上二项实验,观察结果并比较。

5、用命令 E 100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码? 6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H(5)A758,347FH7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF 和AF的内容。

8、用R命令将AX,BX内容改写为1050H及23A8H。

(二)8088常用指令练习1、传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序,特别注意左边的机器码。

3)用T命令逐条运行这些指令,注意有关寄存器及IP的变化情况。

并注意标志位有无变化。

2、加减法指令:1)用A命令在内存100H处键入下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX2)用U命令检查键入的程序及对应的机器码。

《汇编语言》实验报告模板实验一

《汇编语言》实验报告模板实验一

成 绩 评 定 教师签名: 2015 年 月 日
1. 熟练操作宏汇编的开发环境,熟悉汇编语言的编译工具(MASM6.11)及调试器
(Windbg)的使用。
2. 掌握汇编语言的寻址方式和常用指令。 3. 掌握汇编语言基本的程序设计方法和调试手段。 4. 掌握子程序和宏指令的设计和调试手段。
实验要求:
1. 上机前应做好充分的准备。对选定的实验题要先进行设计包括程序框图、数据
2、执行结果截图
内容包括:总结经验提高编程及调试能力。调试情况,如上机时遇到的问题及解决的办 法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结 果的分析;实验的心得体会等。
实 验 结 果 分 析 及 心 得 体 会
通过本次实验熟悉了汇编语言的寻址方式和一些常用指令(运算,循环,过程及 其调用) ,了解了汇编语言中程序的特点,掌握了汇编语言中程序编写的方法,完善了 编写一个完整的简单程序的整体思维结构。
grade 2 ? percent 2 ? grade 3 ? percent 3 ? 75 20 82 60
score is : 81 提示: 总评成绩 = (期中成绩×百分比 1+实验成绩×百分比 2+期末成绩×百分比 3)/100
1、程序清单。 数据段:
.DATA ; reserve storage for data grade1 DWORD ? grade2 DWORD ? grade3 DWORD ? string BYTE 20 DUP (?) prompt1 BYTE "Please input the grade1 : ",0 prompt2 BYTE "Please input the percent of the grade1 : ",0 prompt3 BYTE "Please input the grade2 : ",0 prompt4 BYTE "Please input the percent of the grade2 : ",0 prompt5 BYTE "Please input the grade3 : ",0 prompt6 BYTE "Please input the percent of the grade3 : ",0 prompt7 BYTE "The result is : ",cr,lf,0 sum DWORD ? result BYTE 20 DUP (?) BYTE cr,lf,0

汇编语言综合实验报告格式

汇编语言综合实验报告格式

实验报告课程名称汇编语言实验学期 2014 至 2015 学年第 1 学期学生所在系部计算机学院网络工程系年级三年级专业班级网络B121 学生姓名学号任课教师实验成绩计算机学院制《汇编语言》课程综合性实验报告转存、CHANGE十进制数ASCII码转二进制、SORT按成绩排序、PRINT0成绩未排名输出、PRINT成绩排名后输出、CCIN学号查找,存储输入学号和BJ进行串比较并输出姓名成绩。

2、姓名和成绩输入分别用DOS中被调用的10号功能实现字符串输入。

在输入最后字符后,要将回车符改为$,以便输出时直接用9号功能显示姓名和成绩。

3、用buffer0、buffer1和buffer2作为输入的学号、姓名和成绩的缓存区,然后将所有学号、人名和成绩用串传送指令转到sid、smane和score1中保存。

4、将score1中成绩的十进制数ASCII码转换为二进制数score2.5、将score2中的成绩排序,同时将保存在mingci中的输入次序号也一起交换,以次序号作为排序指针,在sid、smane和score1中查找相应的人名和成绩。

6、打印排序名单时,从mingci中取出次序号作为位移量,到sid、smane和score1中取出姓名和对应的成绩用9号功能显示。

排序后mingci中先取出的次序号一定是成绩最高的人的,依次类推。

7、将ccsid1作为输入要查找的学号的缓存区,然后学号串传送给ccsid2,同时按照mingci中存储的次序依次将sid中的学号存入ccid中,并将其与ccid2进行串比较,如果匹配相同将mingci中的数据保存,从而输出其姓名和成绩,如果不匹配就退出程序。

3.程序截图:1.菜单2.输入3.排序后输出4.查找4.关键代码解释mov cx,d+1lea si,buff0+2lea di,sidadd di,sign0cldrep movsbmov cx,dmov ax,'$'lea di,buff0+2rep stosbbuff0 db d,?,d dup(0),'$' ;学号缓冲区sid db p dup(d+1 dup(0)) ;保存学号buff0为输入学号的缓冲区,?中保存着输入的数字个数,最后以$结尾方便输出时在此终止,不会读取到其他学号区域。

汇编语言综合实验报告格式

汇编语言综合实验报告格式

华北科技学院计算机系综合性实验
实验报告
课程名称汇编语言
实验学期 2008 至 2009 学年第 2 学期学生所在系部
年级专业班级
学生姓名学号
任课教师
实验成绩
计算机系制
实验报告须知
1、学生上交实验报告时,必须为打印稿(A4纸)。

页面空间不够,可以顺延。

2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、
内容、结果及分析等。

3、教师应该填写的内容包括:实验成绩、教师评价等。

4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合
性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。

综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。

任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。

5、未尽事宜,请参考该课程的实验大纲和教学大纲。

《汇编语言》课程综合性实验报告。

汇编语言实验报告模板

汇编语言实验报告模板

合肥工业大学计算机与信息学院实验报告课程:汇编语言程序设计专业班级:学号:姓名:实验一Debug程序的使用一.实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。

2、掌握8086/8088的寻址方式及多字节数据的处理方法。

二.实验内容1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。

2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。

要求:本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。

三.实验过程和程序四.实验结果(包括必要的截图)五.实验体会实验二汇编语言程序设计(顺序、循环)一.实验目的1、掌握顺序和循环程序结构和设计方法;2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。

二.实验内容1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。

试编写汇编语言程序完成以下功能:①计算表达式值(V–(X*Y+Z-720))/X;②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。

2、求一个班50名学生成绩的平均值(附加题:最大值和最小值,并将结果显示出来)3、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串(附加题:查找中间是否有‘asm’子串。

如果有,输出‘Yes’;否则,输出‘No’)。

三.实验过程和程序四.实验结果(包括必要的截图)五.实验体会实验三汇编语言子程序设计(分支、子程序)一.实验目的1、掌握分支和子程序结构和设计方法;2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告实验一、汇编运行环境及方法、简单程序设计一、程序说明本程序用来比较两个字符串string1和string2所含的字符是否相同。

若相同’,否则显示‘No match’。

则显示‘Match在程序的数据段先定义两个字符串string1和string2,再定义两个字符串mess1’和‘Nomatch’。

再代码段比较字符串string1和string2,和mess2,分别代表‘Match通过比较判断是否相同。

若相同则显示‘Match’,否则显示‘No match’。

二、调试说明再EDIT中建立ASM文件,再用汇编程序对源程序汇编产生目标文件Obj,再用连接程序产生执行文件EXE。

再用Debug进行调试。

其中常用到的指令有:用-g命令来用运行程序,用-u命令来显示程序,用-d 命令来查看数据段的情况,-e或-f命令来修改需要改正的部分,用-t指令来逐步执行程序,用-r指令来查看寄存用器和修改寄存器的值,-q命令用来退出debug程序。

在这些命令的后面加上地址,可以将命令执行到相应的地方。

如用-g指令运行程序后,再用-u指令显示程序的执行借给如下:若将string2改为'Move the cursor backwards.',程序的其他部分不做改动,执行结果:若将mov cx,25语句改成mov cx,24,结果为:此时少做了一次循环,得到的结果就不正确了。

实验二、用DEBUG编程:使用堆栈段将AX和BX的内容进行交换等一、程序说明本实验包括两个部分,第一个部分是将AX和BX的内容进行交换,并用堆栈作为两寄存器交换内容的中间存储单元;第二部分是用DEBUG的命令将存储器偏移地AH, 0BH,0CH,0DH,0EH。

在DEBUG状态址300H,304H连续单元顺序装入0 下送入给出的程序中。

第一个程序先将AX的内容进栈,然后将BX的内容赋给AX,再将出栈的内容赋给BX即可。

第二个程序是在进入debug后,用-a指令输入给出的程序,然用-r指令安要求修改内存的内容,再用-t指令逐步执行每条指令,看修改的内存内容对指令执行结果的影响。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.用DEBUG装入调试运行程序,用数据查看命令查看执行前的数据单元的内容,分别使用P和T命令,分析两种方式的区别,记录转换为小写字母指令执行后的状态字;
程序流程图(程序清单):
调试分析
运行截图
教师评阅:
年月日
评分
《汇编语言程序设计》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验二内存操作数及寻址方式
年月日
评分
将两个两位十进制数相加,要求被加数和加数用ASCII码形式各自顺序存放在DATA1和DATA2为首的2个内存单元中,结果送回DATA1。
程序流程图(程序清单)
调试分析
运行截图
教师评阅:
年月日
评分
《汇编语言程序设计》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验四简单系统功能调用
验证型
实验目的及要求:
程序流程图(程序清单)
调试分析
运行截图
教师评阅:
年月日
评分
《汇编语言程序设计》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验六循环程序设计
验证型
实验目的及要求:
1.掌握循环程序设计的方法(包括多重循环程序结构);
2.正确分配与使用寄存器的方法;
实验内容:
以GRADEDE为首地址的数组保存了学号为1-10的学生成绩,建立一个10个字RANK数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(一个学生的名次等于成绩高于该学生的人数加1)。
1.握接收键盘数据的方法,并了解将键盘数据显示时,转换为ASCII码的原理;
2.掌握DOS功能调用的编程方法。
实验内容:
编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
编写一个汇编语言程序,要求利用DOS系统调用功能读入一个字符串,并用DOS系统调用显示该字符串。
程序流程图(程序清单)
程序流程图(程序清单):
调试分析:
运行截图
教师评阅:
年月报告
班级·学号姓名实验日期任课教师
实验名称
实验三汇编语言程序设计的调试与运行
验证型
实验目的及要求:
1.学习数据传送和算术运算指令的用法;
2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程;
实验内容:
调试分析
运行截图
教师评阅:
年月日
评分
《汇编语言程序设计》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验五分支程序设计
验证型
实验目的及要求:
1.掌握分支程序的结构;
2.掌握分支程序的设计、调试方法;
实验内容:
设有一个数X在DATA中,编写程序,根据X为正数,Y=1,X为负数,Y=-1,X为0,Y=0。
程序流程图(程序清单)
调试分析
运行截图
教师评阅:
年月日
评分
《汇编语言程序设计》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验七综合程序设计
综合型
实验目的及要求:
1.基本掌握独立编写汇编语言程序的能力;
实验内容:
1.根据课程的布置实现汇编语言的编写。
程序流程图(程序清单)
调试分析
运行截图
教师评阅:
验证型
实验目的及要求:
1.熟练掌握DEBUG的常用命令,学会用DEBUG调试程序;
2.掌握数据在内存中的存放方式和内存操作数的几种寻址方式;
3.掌握简单指令的执行过程;
实验内容:
设堆栈指针SP=2000H,AX=30000H,BX=5000H;编写一段程序将AX和BX的内容进行交换。请用堆栈段作为两寄存器交换内容的中间存储单元,用DEBUG调试软件进行编写与调试。
《汇编语言程序设计》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验一DEBUG基本命令的使用
验证型
实验目的及要求:
1.掌握DEBUG的基本命令及功能;
实验内容:
1.编写一个小程序,从键盘接收一个大写字母,存放到指定内存单元BUF1,并转换成为对应的小写字符,存放到内存单元BUF2。上机编辑、汇编、连接并运行。
相关文档
最新文档