ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:273.80KB ,
资源ID:27407339      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27407339.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言实验报告2914doc.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言实验报告2914doc.docx

1、汇编语言实验报告2914doc合肥工业大学计算机与信息学院实验报告课 程:汇编语言程序设计专业班级:信息安全11-1学 号:20112914姓 名:王佳淼实验一 Debug程序的使用一.实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。2、掌握8086/8088的寻址方式及多字节数据的处理方法。二.实验内容1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H

2、单元中的数据相加,并将运算结果存放在DS:0208H单元中。要求:本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。三.实验过程和程序1、启动DOS操作系统2、运行DEBUG.COM程序(若当前盘为C) C:DEBUG ;(“”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令)3、用“A”命令编辑和汇编源程序 A 186E:0100 MOV AX,0200 186E:0103 MOV BX,0202 186E:0107 ADD AX,0204 186E:010B ADC BX,0206 186E:010F

3、 MOV 0208,AX 186E:0112 MOV 020A,BX 186E:0116 4、用“U”命令反汇编验证源程序 U CS:0100 186E:0100 A10002 MOV AX,0200 186E:0103 8B1E0202 MOV BX,0202 186E:0107 03060402 ADD AX,0204 186E:010B 131E0602 ADC BX,0206 186E:010F A30802 MOV 0208,AX 186E:0112 891E0A02 MOV 020A,BX 186E:0116 注意:检查源程序是否有错误,若有则返回到第3步用“A 地址”命令进行修改

4、,直到程序无错误。DEBUG约定在其命令或源程序中所涉及到的数据均被看作十六进制数,其后不用“H”说明。在DEBUG下,源程序中不能使用“标号”、“变量”和一些伪指令。在DEBUG下,大小写不敏感。5、程序未执行前,用“R”命令观察,相关寄存器的内容。R如:(AX)= 0000 ,(BX)= 0000 ,(SI)= 0000 , (DI)= 0000 ,(CS)= 1376 ,(IP)= 0100 。6、在程序未执行前,用“D”命令观察DS:0200H,DS:0204H、DS:0208H单元的内容 D 200 20B 7、用“G”命令运行源程序 G =100 0116 8、再用“D”命令观察D

5、S:0200HDS:020BH字节单元中的内容 D 200 20B9、用“T”单步操作命令对源程序单步执行,观察AX、BX、CS、IP寄存器内容的变化,并与预计的结果相比较。注意:D命令显示内存数据,注意观察多字节数据在内存中的存放方式。指令执行的时候,IP寄存器随着变化,注意观察。四.实验结果(包括必要的截图)利用寄存器的方法:五.实验体会能使用debug在dos界面下编译代码。能熟练使用各种debug命令,例如-u、-g、-d、-r等命令。熟练掌握8086/8088的寻址方式及多字节数据的处理方法实验二 汇编语言程序设计(顺序、循环)一.实验目的1、掌握顺序和循环程序结构和设计方法;2、熟

6、悉在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、计算表达式并存入内存Stack seg

7、ment dw 512 dup(?)Stack endsData segment x dw 100 y dw 100 z dw 100 v dw 100 sum1 dw ? sum2 dw ? Data endsCode segment assume cs:code, ds:data, ss:stackstart: mov ax,data mov ds,ax mov ax,x;在代码段填入指令序列 mov bx,y imul bx add ax,z adc dx,0 sub ax,720 sbb dx,0 mov cx,dx mov bx,ax mov ax,v cwd sub ax,bx s

8、bb dx,cx mov bx,x idiv bx mov sum1,ax mov sum2,dx mov ah,4ch int 21hCode ends end start2、求出平均值、最大值、最小值Stack segment dw 512 dup(?)Stack endsData segment stu db 25 dup(35,37) s1 db the max is:$ s2 db the min is:$ s3 db the avg is:$ display db 5 dup($) Data endsCode segment assume cs:code, ds:data, ss:

9、stackstart: mov ax,data mov ds,ax ; 在代码段填入指令序列 mov al,0 mov si,0 mov cl,50 mov bh,0; max mov bl,100; minagain: add al,stusi adc ah,0 cmp bh,stusi ja L1 mov bh,stusiL1: cmp bl,stusi jb L2 mov bl,stusiL2: inc si loop again mov cl,50 div cl; avg在al中 mov cl,ah; 保存ah lea dx,s3 mov ah,09h int 21h mov ah,c

10、l call DISP lea dx,s2; 最小值输出 mov ah,09h int 21h mov al,bl call DISP mov ah,02h; 输出回车换行 mov dl,0ah int 21h mov ah,0dh int 21h lea dx,s1; 最大值输出 mov ah,09h int 21h mov al,bh call DISP mov ah,4ch int 21hDISP proc push bx cmp al,100 jz mf cmp al,10 jb gw mov ah,0 mov bl,10 div bl add al,30h mov display0,

11、al add ah,30h mov display1,ahdone: lea dx,display mov ah,09h int 21h mov ah,02h; 输出回车换行 mov dl,0ah int 21h mov ah,0dh int 21h pop bx retmf: mov display0,31h mov display1,30h mov display2,30h jmp donegw: add ah,30h mov display0,ah jmp doneDISP ENDP Code ends end start3、读入字符串Code segment assume cs:cod

12、e, ds:datastart: mov ax,data mov ds,ax mov ah,0ah lea dx,x+2 int 21h mov ah,02h; 输出回车换行 mov dl,0ah int 21h mov ah,0dh int 21h mov dx,offset x+2 mov ah,09h int 21h lea si,x lea di,y mov bx,di mov ah,48again: mov cx,3 repz cmpsb jz found inc si mov di,bx dec ah jnz again mov ah,02h; 输出回车换行 mov dl,0ah

13、int 21h mov ah,0dh int 21h lea dx,s2 jmp donefound: lea dx,s1 done: mov ah,09h int 21h mov ah,4ch int 21h Code ends end start四.实验结果(包括必要的截图)2.12.22.3五.实验体会通过此次试验,我掌握顺序和循环程序结构和设计方法,能在PC上对循环结构和顺序结构进行编程。熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。实验三 汇编语言子程序设计(分支、子程序)一.实验目的1、掌握分支和子程序结构和设计方法;2、熟悉在PC机上建立、汇编、

14、连接、调试和运行8086/8088汇编语言程序的过程。3、通过汇编语言了解高级语言的参数传递等知识。二.实验内容1、1. BL中的只有一位为1。编写程序测试,并输出提示信息“The X Bit is 1”,要求:地址表和转移表。2. 编写一个子程序计算z=f(x,y)=x*y+x-y(x,y,z有符号数内存数)。要求通过堆栈(寄存器、内存)传送所有参数。三.实验过程和程序1、1. BL中的只有一位为1。编写程序测试,并输出提示信息“The X Bit is 1”,要求:地址表和转移表。;地址表法Data segment S1 DB The 1 Bit is 1$ S2 DB The 2 Bit

15、 is 1$ S3 DB The 3 Bit is 1$ S4 DB The 4 Bit is 1$ S5 DB The 5 Bit is 1$ S6 DB The 6 Bit is 1$ S7 DB The 7 Bit is 1$ S8 DB The 8 Bit is 1$ addrtb dw L0,L1,L2,L3,L4,L5,L6,L7 Data endsCode segment assume cs:code, ds:datastart: mov ax,data mov ds,ax mov bl,02h mov al,0ffhagain: inc al shr bl,1 jnc agai

16、n shl al,1; al乘以2 mov bl,al mov bh,0 jmp addrtbbx mov ah,4ch int 21hL0: lea dx,S1 jmp outputL1: lea dx,S2 jmp outputL2: lea dx,S3 jmp outputL3: lea dx,S4 jmp outputL4: lea dx,S5 jmp outputL5: lea dx,S6 jmp outputL6: lea dx,S7 jmp outputL7: lea dx,S8 jmp outputoutput: mov ah,09h int 21h mov ah,4ch in

17、t 21h Code ends end start ;转移表法Data segment S1 DB The 1 Bit is 1$ S2 DB The 2 Bit is 1$ S3 DB The 3 Bit is 1$ S4 DB The 4 Bit is 1$ S5 DB The 5 Bit is 1$ S6 DB The 6 Bit is 1$ S7 DB The 7 Bit is 1$ S8 DB The 8 Bit is 1$ Data endsCode segment assume cs:code, ds:datastart: mov ax,data mov ds,ax mov bl

18、,02h mov al,-1again: inc al shr bl,1 jnc again mov ah,0 mov cx,ax shl ax,1 add ax,cx; al乘以3 lea si,jmptb add si,ax jmp si jmptb: jmp L0 jmp L1 jmp L2 jmp L3 jmp L4 jmp L5 jmp L6 jmp L7org $+80h L0: lea dx,S1 jmp outputL1: lea dx,S2 jmp outputL2: lea dx,S3 jmp outputL3: lea dx,S4 jmp outputL4: lea dx

19、,S5 jmp outputL5: lea dx,S6 jmp outputL6: lea dx,S7 jmp outputL7: lea dx,S8 jmp outputoutput: mov ah,09h int 21h mov ah,4ch int 21hCode ends end start2. 编写一个子程序计算z=f(x,y)=x*y+x-y(x,y,z有符号数内存数)。要求通过堆栈(寄存器、内存)传送所有参数。;堆栈传递Stack segment dw 512 dup(?)Stack endsData segment x dw 100 y dw 100 z dw 100 Data

20、 endsCode segment assume cs:code, ds:data, ss:stackstart: mov ax,data mov ds,ax sub sp,2 mov ax,x push ax mov ax,y push ax call P1 pop z mov ax,z mov ah,4ch int 21h P1 proc near push bp mov bp,sp push ax push bx push cx push dx mov ax,6bp;x的值 mov bx,4bp;y的值 imul bx mov cx,dx mov bx,ax mov ax,6bp cwd

21、 add bx,ax adc cx,dx mov ax,4bp cwd sub bx,ax sbb cx,dx mov 8bp,bx pop dx pop cx pop bx pop ax pop bp ret 4P1 endp Code ends end start;寄存器传递Stack segment dw 512 dup(?)Stack endsData segment x dw 100 y dw 100 z dw ?Data endsCode segment assume cs:code, ds:data, ss:stackstart: mov ax,data mov ds,ax mo

22、v ax,x mov bx,y call P1 mov z,bx; bx做出口参数 mov ax,z;方便查看输出是否正确 mov ah,4ch int 21h P1 proc near push ax push cx imul bx mov cx,dx mov bx,ax mov ax,x cwd add bx,ax adc cx,dx mov ax,y cwd sub bx,ax sbb cx,dx pop cx pop ax retP1 endp Code ends end start四.实验结果(包括必要的截图)寄存器方式堆栈方式五.实验体会实验四 汇编语言高级编程专题一.实验目的1、

23、汇编语言宏程序设计;2、 掌握中断服务子程序的编写。3、 汇编语言与高级语言的混编。二.实验内容1、编写一个宏,求三个数的最小数,原型为:MIN3 x,y,z,min2、挂接1CH中断,正计时60秒后退出。要求屏幕显示0-59的秒数。三.实验过程和程序1、编写一个宏,求三个数的最小数,原型为:MIN3 x,y,z,minStack segment dw 512 dup(?)Stack endsData segment x db 21 y db 33 z db 9 min db ?Data endsCode segment assume cs:code, ds:data, ss:stack MIN3 macro x,y,z,min; 宏的定义 mov al,x cmp al,y jb huan mov al,yhuan: cmp al,z jb done mov al,zdone: mov min,al add al,30h mov dl,al mov ah,2;定义输出,方便观察结果 int 21h endm start: mov ax,data mov ds,ax MIN3 x,y,z,min mov ah,4ch int 21h Code ends end start四.实验结果(包括必要的截图)宏定义计数器五.实验体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1