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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

汇编实验报告河北工业大学.docx

1、汇编实验报告河北工业大学实验一 顺序与分支程序设计 一 、实验目的 1) 掌握顺序程序设计方法。2) 掌握分支程序的结构及分支程序的设计,调试方法。 2) 学习数据传送及算术和逻辑运算指令的用法。 3) 熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。 二、实验内容 1) 有一字变量BUF1是以原码表示的有符号数,要求将其转换为反码和补码,分别存入BUF2和BUF3单元,并在屏幕上显示出来。源代码:DATA SEGMENTBUF1 DW 9348HBUF2 DW 4 DUP(0),0AH,0DH,$BUF3 DW 4 DUP(0),$DATA ENDSCODE SEGMENT A

2、SSUME CS:CODE,DS:DATABEGIN:MOV AX,DATA MOV DS,AX MOV AX,BUF1 ADD AX,0 JS NEXT MOV BUF2,AX MOV BUF3,AX JMP EEE NEXT:AND AX,7FFFH NOT AX MOV BUF2,AX INC AXMOV BUF3,AX EEE:MOV CX,0004H MOV DI,OFFSET BUF2 MOV DX,DI ADD DI,03BBB:MOV AX,DX AND AX,000FH CMP AL,0AH JB QQQ ADD AL,07HQQQ:ADD AL,30H MOV DI,AL

3、DEC DIPUSH CX MOV CL,04H SHR DX,CL POP CX LOOP BBB MOV CX,0004H MOV SI, OFFSET BUF3 MOV DX,SI ADD SI,03HCCC:MOV AX,DX AND AX,000FH CMP AL,0AH JB DDD ADD AL,07HDDD:ADD AL,30H MOV SI,AL DEC SI PUSH CX MOV CL,04H SHR DX,CL POP CX LOOP CCC MOV DX,OFFSET BUF2 MOV AH,09H INT 21H MOV DX,OFFSET BUF3 MOV AH,

4、09H INT 21H MOV AH,4CH INT 21HCODE ENDSEND BEGIN运行结果:2)有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。 源代码:DATA SEGMENTA DB 34H,18H,2 DUP(0),$B DB 56H,83H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,A MOV BL,B ADD AL,BL MOV AH,A+1 MOV BH,B+1 AD

5、C AH,BH MOV A,AL MOV A+1, AH MOV CX, 0004H MOV DI,OFFSET A MOV DX, DI ADD DI,03 NEXT:MOV AX,DX AND AX,000FH CMP AL,0AH JB QQQ ADD AL,07H QQQ:ADD AL,30H MOV DI,AL DEC DI PUSH CX MOV CL,04 SHR DX,CL POP CX LOOP NEXTMOV DX,OFFSET AMOV AH,09HINT 21HMOV AH,4CHINT 21H CODE ENDSEND START运行结果:3) 在BUF和BUF+1、

6、BUF+2单元分别放有一个无符号字节型数,编程序将其中最大数存入MAX单元,并在屏幕上显示。 源代码:STACK SEGMENT STACK DB 1024 DUP(0)STACK ENDSDATA SEGMENTBUF DB 70H,35H,1FHMAX DB 2 DUP(?),$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKBEGIN:MOV AX,DATA MOV DS,AX MOV AL,BUF CMP AL,BUF+1 JNB LP1 MOV AL,BUF+1 LP1:CMP AL,BUF+2 JAE LP2 MOV AL,

7、BUF+2 LP2:MOV CX,02H MOV DI,OFFSET MAX MOV DL,AL INC DI LP3:AND AL,0FH CMP AL,0AH JB LP4 ADD AL,07H LP4:ADD AL,30H MOV DI,AL DEC DI PUSH CX MOV CL,04 SHR DL,CL POP CX MOV AL,DL LOOP LP3 MOV DX,OFFSET MAX MOV AH,09H INT 21H MOV AH,4CH INT 21HCODE ENDS END BEGIN运行结果:4) 要求同上,只是比较的数为有符号数。 源代码:STACK SEGM

8、ENT STACK DB 1024 DUP(0)STACK ENDSDATA SEGMENTBUF DB 98H,75H,32HMAX DB 2 DUP(?),$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKBEGIN:MOV AX,DATA MOV DS,AX MOV AL,BUF CMP AL,BUF+1 JG LP1 XCHG AL,BUF+1LP1: CMP AL,BUF+2 JG LP2XCHG AL,BUF+2LP2: MOV MAX,ALMOV CX,02HMOV DI,OFFSET MAXMOV DL,DIINC DI

9、LP3: MOV AL,DLAND AL,0FHCMP AL,0AHJB LP4ADD AL,07HLP4: ADD AL,30HMOV DI,ALDEC DIPUSH CXMOV CL,04SHR DX,CLPOP CXLOOP LP3MOV DX,OFFSET MAXMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND BEGIN运行结果:6) 从键盘上接收一位十进制数X,计算Y值,并以十六进制形式显示出来,Y按下列公式计算。源代码:DATA SEGMENTX DB ?Y DB ?DATA ENDSSTACK SEGMENT STACKDW 20H

10、DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXl0:MOV DL,0AHMOV AH,2INT 21HMOV DL,0DHINT 21HMOV AH,1INT 21HSUB AL,30HMOV X,ALCMP X,3JZ l1CMP X,4JZ l2CMP X,5JZ l3CMP X,6JZ l4CMP X,0JZ l6JMP l0l1:MOV AL,XMUL XADD AL,XMOV Y,ALJMP l5l2:MOV AL,XMUL XSUB AL,XSUB AL,XMOV Y,ALJM

11、P l5l3:MOV AL,XMUL XMOV Y,ALJMP l5l4:MOV AL,XMUL XMOV BL,2DIV BLMOV Y,ALl5:MOV DL,0AHMOV AH,2INT 21HMOV DL,0DHINT 21HMOV DL,YMOV CL,4SHR DL,CLCMP DL,9JLE l7ADD DL,7l7:ADD DL,30HMOV AH,2INT 21HMOV DL,YAND DL,0FHCMP DL,9JLE l8ADD DL,7l8:ADD DL,30HMOV AH,2INT 21HJMP l0l6:MOV AH,4CHINT 21HCODE ENDSEND S

12、TART运行结果:7) 从键盘上接收两个一位十六进制数X和Y,然后再输入一个A-D之间的一个字符,按下列要求计算。源代码:DATAS SEGMENT x db ? y db ? z db ? s db ? DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASstart:mov ax,datas mov ds,ax l0:mov ah,1 int 21h sub al,30h mov x,al mov dl,0ah mov ah,2 int 21h mov dl,0dh int 21h mov ah,1 int 21h sub al,30h mov y

13、,al mov dl,0ah mov ah,2 int 21h mov dl,0dh int 21h mov ah,1 int 21h mov z,al cmp z,a jz l1 cmp z,b jz l2 cmp z,c jz l3 cmp z,d jz l4 cmp z,q jz l7 l1:mov al,x add al,y mov s,al jmp l6 l2:mov al,x sub al,y mov s,al cmp s,0 js l5 jns l6 l3:mov al,x mul y mov s,al jmp l6 l4:mov al,x mov bl,y mov ah,0 d

14、iv bl mov s,al jmp l6 l5:neg s jmp l6 l6:mov dl,0ah mov ah,2 int 21h mov dl,0dh int 21h mov dl,s l9:add dl,30h mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h mov dl,0dh int 21h jmp l0 l7:mov ah,4ch int 21h CODES ENDSEND start运行结果:实验二 循环与子程序程序设计 一、实验目的 1) 加深对循环结构的理解。 2)掌握循环程序的设计方法。3)学习子程序的定义和调用方法。 4)掌握

15、子程序、子程序的嵌套、递归子程序的结构。 5) 掌握子程序设计、编制及调试。 6) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 二、实验内容 1) 编制程序计算S=1+23+34+45+N(N+1)+直到N(N+1)大于200为止,并将结果由屏幕上显示出来。源代码:DATA SEGMENTBUF DBS=1+2*3+3*4+4*5+N(N+1)+=,$RES DW 4 DUP(0),$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS, AX MOV DX, OFFSET BUF MOV AH

16、, 09H INT 21H MOV DX, 1 MOV BL, 2NEXT: MOV AL, BL INC BL MUL BL ADD DX, AX CMP AX, 200 JNA NEXT MOV CX, 0004H MOV DI, OFFSET RES ADD DI, 03HNEXT1:MOV AX, DX AND AX, 000FH CMP AL, 0AH JB NEXT2 ADD AL, 07NEXT2:ADD AL, 30H MOV DI,AL DEC DI PUSH CX MOV CL,04 SHR DX,CL POP CX LOOP NEXT1 MOV DX, OFFSET RE

17、S MOV AH, 09H INT 21H MOV AH, 4CH INT 21HCODE ENDSEND START运行结果:2)将从3000H内存单元开始的100个字节存储单元全部清0。源代码:DATA SEGMENTORG 3000HX DB 100 DUP(?)DATA ENDSSTACK SEGMENT STACKDB 10 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXLEA SI,XMOV CX,100LP:AND BYTE PTRSI,00HINC SIL

18、OOP LPMOV AH,4CHINT 21HCODE ENDSEND START运行结果:3)编制在屏幕上显示九九乘法表的程序。源代码:DATA SEGMENT X DB 1 Y DB 1 Z DB 1 S DB ? YS DB ? TEN DB 10 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX ;装入段寄存器 L1:MOV AL,X MUL Y MOV Z,AL CALL SC INC Y MOV BL,X CMP Y,BL JA L2 JMP L1 ;内循环 L2:INC X CMP

19、X,9H JA L3 MOV Y,1 MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH MOV AH,02H INT 21H ;输出回车换行 JMP L1 ;外循环 L3:MOV AH,4CH INT 21H SC PROC ;输出子程序 ADD Y,30H MOV DL,Y MOV AH,02H INT 21H ;输出Y MOV DL,X MOV AH,02H INT 21H ;输出X ADD X,30H MOV DL,X MOV AH,02H INT 21H ;输出X MOV DL,= MOV AH,02H INT 21H ;输出= MOV AX,0 MOV

20、 AL,Z DIV TEN MOV S,AL MOV YS,AH cmp s,1 jb l10 ADD S,30H MOV DL,S MOV AH,2 INT 21H;输出高位结果 ADD YS,30H MOV DL,YS MOV AH,2 INT 21H;输出低位结果 ;输出Z MOV DL, MOV AH,02H INT 21H ;输出一个空格 jmp l11 l10:ADD YS,30H MOV DL,YS MOV AH,2 INT 21H;输出低位结果 MOV DL, MOV AH,02H INT 21H ;输出一个空格 MOV DL, MOV AH,02H INT 21H l11:M

21、OV AX,0 MOV AL,X-30H SUB X,30H SUB Y,30H RET SC ENDP CODE ENDS END START 运行结果:4)编制在屏幕上显示用*组成的三角形的程序源代码:DATA SEGMENT N DB ? NN DB ? I DB 1DATA ENDSSTACK SEGMENT DW 20 DUP(?)STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AH,1 INT 21H ;输入一个数存入AL MOV N,AL ;输入的数存

22、入N SUB N,30H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H L10: MOV AL,N SUB AL,I MOV NN,AL L2: CMP NN,1 JB L1 MOV DL, MOV AH,02H INT 21H DEC NN JMP L2 ;循环输出N-I个空 格 L1: MOV BL,I SHL BL,1 SUB BL,1 ;(IX2)-1 L14: MOV DL,* MOV AH,02H INT 21H DEC BL CMP BL,1 JB L3 JMP L14 L3: MOV AL,N SUB AL,I

23、MOV NN,AL L4: CMP NN,1 JB L5 MOV DL, MOV AH,02H INT 21H DEC NN JMP L4 ;循环输出N-I个空格 L5:MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H ;输出回车换行 INC I MOV BL,I CMP BL,N JA L6 MOV BL,0 JMP L10 L6:MOV AH,4CH INT 21H CODE ENDS END START运行结果:5)设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RE

24、SULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。源代码:STACK SEGMENT STACK DB 1024 DUP(0)STACK ENDSDATA SEGMENTBUF DW 0F101H,110DH,52H,100H,456HCOUNT =($-BUF)/2RESULT DW 4 DUP(?),$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKWDADD PROC PUSH DI MOV AX, 0 MOV DX, 0 MOV DI, OFFSET BUFNEXT2: ADD AX, DI JNC NEX

25、T1 INC DXNEXT1: ADD DI, 2 LOOP NEXT2 POP DI RET WDADD ENDP SHOW PROC PUSH CX PUSH DI MOV CX, 04H MOV DI, OFFSET RESULT MOV BX, AX ADD DI, 07HBBB: MOV AX, BX AND AX, 000FH CMP AL, 0AH JB QQQ ADD AL, 07HQQQ: ADD AL, 30H MOV DI, AL DEC DI PUSH CX MOV CL, 04 SHR BX, CL POP CX LOOP BBB MOV CX, 0004HCCC:

26、MOV AX, DX AND AX, 000FH CMP AL, 0AH JB DDD ADD AL, 07HDDD: ADD AL, 30H MOV DI, AL DEC DI PUSH CX MOV CL, 04H SHR DX, CL POP CX LOOP CCC POP DI POP CX RET SHOW ENDPBEGIN: MOV AX, DATA MOV DS, AX MOV CX, COUNT CALL WDADD CALL SHOW MOV DX, OFFSET RESULT MOV AH, 09H INT 21H MOV AH, 4CH INT 21HCODE ENDS

27、 END BEGIN运行结果:实验三 算术运算与代码转换程序设计一、实验目的 1)掌握算术运算程序的设计方法。2)掌握代码转换程序的设计方法。 3)进一步掌握各种程序结构。 4)熟练掌握和使用用DEBUG调试程序。 二、实验内容1)编制两个多字节整数加法和减法程序,并将结果按十六进制形式显示在屏幕上。源代码:DATA SEGMENT TABLE DW L1,L2,L3,L4,L5 BUF DB 32H,20H,12H NUM DB 04H DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START:MOV AX,DATA MOV DS,AX MOV BL,BUF MOV BH,BUF+1 MOV CL,BUF+2 CMP BL,BH JA L1 CMP BH,CL JA L2 JMP L3 L1:CMP BL,CL JA L4 JMP L3 L2:MOV DL,BUF+1 AND DL,0F0H SAR DL,1 SAR DL,1 SAR DL,1 SAR DL,1 ADD DL,30H MOV AH,02H INT 21H

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

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