合工大汇编语言程序设计实验报告.docx





《合工大汇编语言程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《合工大汇编语言程序设计实验报告.docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、合肥工业大学 计算机与信息学院实验报告课 程:汇编语言程序设计专业班级:* 学 号 :*姓 名 : *目录实验一3实验二7实验三12实验四22实验一Debug 程序的使用一. 实验目的1、熟悉 DEBUG 程序中的命令,学会在 DEBUG 下调试运行汇编语言源程序。2、掌握 8086/8088 的寻址方式及多字节数据的处理方法。二. 实验内容1、利用 DEBUG 程序中的“ E”命令,将两个多字节数“ 003F1AE7H”和“006BE5C4H”分别送入起始地址为 DS:0200H 和 DS:0204H 两个单元中。2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将 DS:0200H
2、 单元和 DS:0204H 单元中的数据相加,并将运算结果存放在 DS:0208H 单元中。要求:本次实验的内容均在 DEBUG 下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。三. 实验过程和程序实验内容一:e ds:0200 E7 1A 3F 00 e ds:0204 C4 E5 6B 00实验内容二:(1) 直接寻址方式MOVAX,0200 MOVBX,0202 ADDAX,0204 ADCBX,0206 MOV0208,AX MOV020A,BX(2)寄存器间接寻址方式MOVSI,0200HMOVDI,0204H MOVBX,0208H M
3、OVAX,SI MOVDX,SI+2 ADDAX,DI ADCDX,DI+2MOVBX,AX MOVBX+2,DX四. 实验结果(包括必要的截图)实验内容一: 输入数据:C: SMDEEUG32n尸h11g 飞? Urinn1 0 - Gnp”right (C) T. ii沁 nn r.nm1111t. i ncr 1 叩 4CPU= 4B6, Re a l 比 de , Id/Step-E DS:0ZOOE7 1A 3r oo-E DS:0204 C4 ES 6B 00= 0402, AZ0 disnbled、c: lASMD EBUG3 ZDebug32 - Uersion显示数据:1.0
4、 - Copyright(C) LarsonComputing1994创 02 , A20 disabledCPU= 486, Real Mode, Id/ St e p =- E DS: 拉 OO E7 19 3F OO-E DS:0204 Ci ES 6B 00-D DS:0200l C郘 : 炾 妖 l E lA j OO C4 E5 b1:1 扮AB OO AH OO OO OO OO OO 1C8B:021OOOOOOOOOOOOOOOOO-OOOOOOOOOOOOOOOO- n1111 l i r. 社尸 Li nP. ( )幻 挠1C8B:027OOOOOOO OO OOOOOO
5、OO-OO OO OOOOOOOOOOOOg. t. Uek. 实验内容二:(1)直接寻址方式程序段编辑:反汇编:运行:结果在 DS:0208 单元中 为 00AB00ABH(2) 寄存器间接寻址方式程序段编辑:反汇编:运行:结果高字存放在 dx 中,低字存放在 ax 中(结果为 00AB00ABh)五. 实验体会通过本实验,实践 debug 程序中的命令,并在 debug 下调试运行汇编语言源程序。在实践过程中,解决如何把数据录入存储单元、debug 命令如何使用等问题后,知道存数据例如 1234 进存储单元时 要 34 12 存,还有掌握了寄存器的寻址方式。实验二汇编语言程序设计(顺序、循
6、环)一. 实验目的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子
7、串。如果有,输出Yes;否则,输出No)。三. 实验过程和程序(注:附加题没有做) 实验内容一:X、Y、Z、V 均为字变量,在 X、Y、Z、V 字单元中存放是 16 位带符号数。试编写汇编语言程序完成以下功能:计算表达式值(V(X*Y+Z-720)/X;将上述表达式运算结果整数放在 SUM1 单元,余数放在 SUM2 单元。Data segment x dw ?y dw ? z dw ? v dw ?sum1 dw ? sum2 dw ? Data ends Code segmentassume cs:code,ds:data start:mov ax,data mov ds,ax mov a
8、x,x imul ymov ah,4ch int 21h Code endsend startmov cx,ax mov bx,dx mov ax,z cwdadd cx,ax adc bx,dx sub cx,720 sbb bx,0 mov ax,v cwdsub ax,cx sbb dx,bx idiv xmov sum1,ax mov sum2,dx实验内容二:求一个班 50 名学生成绩的平均值(为了方便,只设置了 5 个学生数据)data segmentgrade dw 90,80,80,70,60;平均数 76 data endscode segmentassume cs:code
9、,ds:datastart:mov ax,data mov ds,ax xor ax,ax mov cx,5mov bx,offset gradeagain:add ax,bx add bx,2 loop againmov cx,5cwd idiv cxmov ah,4ch int 21hcode ends end start实验内容三:从键盘读入一个字符串,以 Enter 结束,字符串不超过 50 个字符, 并打印该字符串data segment buffer db 50db ?db 50 dup($) crdb 0ah,0dh,$ data endscodes segmentassume
10、cs:codes,ds:data start:mov ax,data mov ds,axinput:mov ah,10 lea dx,buffer int 21hlea dx,cr mov ah,9 int 21houtput:lea dx,buffer+2 mov ah,9int 21h mov ah,4ch int 21hcodes endsend start四. 实验结果(包括必要的截图) 实验内容一:设 x=156,y=10,z=220,v=2000,则 sum1=0006h,sum2=0004h 在 ax 中看 sum1,在 dx 中看 sum2实验内容二:预先设置的数据求得平均数为
11、 76,在 ax 中查看,即 ax=004Ch实验内容三:五. 实验体会通过本实验,将课本上学到的算术运算类指令、变量定义伪指令、存储单元、DOS 0AH 号功能(字符串输入)和DOS 09H 功能(字符串输出)等在实验中实现。在实现过程中,解决遇到的问题(符号扩展、定义的数组存储空间地址、字符串如何输入输出等) 后,对上述知识有了更深的了解,并掌握实现它。实验三汇编语言子程序设计(分支、子程序)一. 实验目的1、掌握分支和子程序结构和设计方法;2、熟悉在 PC 机上建立、汇编、连接、调试和运行8086/8088 汇编语言程序的过程。3、通过汇编语言了解高级语言的参数传递等知识。二. 实验内容
12、1、BL 中的只有一位为 1。编写程序测试,并输出提示信息“The X Bit is 1 ”,要求:地址表和转移表。2. 编写一个子程序计算 z=f(x,y)=x*y+x-y(x,y,z 有符号数内存数)。要求通过堆栈(寄存器、内存)传送所有参数。3. 实践 CAsm 的转换过程。三. 实验过程和程序实验内容一:BL 中的只有一位为 1。编写程序测试,并输出提示信息“The X Bit is 1”(1) 转移表;转移表,bl 左到右 1-8 位DATAS SEGMENTstr1 db the 1 bit is 1,0dh,0ah,$ str2 db the 2 bit is 1,0dh,0ah
13、,$ str3 db the 3 bit is 1,0dh,0ah,$ str4 db the 4 bit is 1,0dh,0ah,$ str5 db the 5 bit is 1,0dh,0ah,$ str6 db the 6 bit is 1,0dh,0ah,$ str7 db the 7 bit is 1,0dh,0ah,$ str8 db the 8 bit is 1,0dh,0ah,$DATAS ENDS CODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATAS MOV DS,AXmov bl,00010000b mov cx
14、,8mov si,0again:shl bl,1 jc next add si,3loop againnext:add si,offset jmptable jmp sijmptable:jmp near ptr l1 jmp near ptr l2 jmp near ptr l3 jmp near ptr l4 jmp near ptr l5 jmp near ptr l6 jmp near ptr l7 jmp near ptr l8l1:l2:l3:l4:l5:l6:lea dx,str1 jmp outputlea dx,str2 jmp outputlea dx,str3 jmp o
15、utputlea dx,str4 jmp outputlea dx,str5 jmp outputl7:l8:lea dx,str6 jmp outputlea dx,str7 jmp outputlea dx,str8output:mov ah,9 int 21hMOV AH,4CH INT 21HCODES ENDSEND START(2) 地址表;地址表,bl 左到右依次是第 1-8 位DATAS SEGMENTstr1 db the 1 bit is 1,0dh,0ah,$ str2 db the 2 bit is 1,0dh,0ah,$ str3 db the 3 bit is 1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 合工大 汇编语言 程序设计 实验 报告

限制150内