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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

西安交通大学汇编实验报告副本.docx

1、西安交通大学汇编实验报告副本汇编语言第二次实验报告 计算机43班 2016年4月23日80X86汇编语言程序设计课内实验报告班级计算机43实验时间2016姓名学号实验内容概述实验一数据段中已定义了一个有n个字数据的数组M,试编写一程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中实验二设计一程序,接收从键盘输入的(1-5),并对每个数字的输入次数进行记数,记数结果存在以count为首地址的数组中实验三设有10 个学生的成绩分别是76,69,84,90,73,88,99,63,100 和80 分。 试编制一个子程序统计6069 分,7079

2、 分,8089 分,9099 分和100 分的人数并分别存放到S6, S7, S8, S9 和S10 单元中。实验四试编写一段程序,完成以下功能:若给定名为X 的字符串长度大于5 时,下列指令将汇编10 次。ADD AX, AX(要求:使用条件汇编,编译过程中生成LST 文件,查看宏展开情况)实验三 编写程序,使类型1CH 的中断向量指向中断处理程序COUNT,COUNT 统计1CH 中断次数并存入单元M 中。实验四编写一个程序,接收从键盘输入的10 个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT 指令变换)存入内存缓冲区BUFFER。加密表为:输入数字:0,1,2,3,

3、4,5,6,7,8,9密码数字:7,5,9,1,3,6,8,0,2,4实验步骤第一题: 在主程序中判断是否为负,如果是负数,就将它改成正的,并与第一个数比较(放在ax中了),并随时记录最大值的地址,存在寄存器中,做完所有的数字以后,把最大值给M+2n,把地址给M+2n+2中就好了第二题: 调用mov ah,02h , int 21h的指令从键盘读入一个字符,判断是否为1-5,不是则继续输入,是就让count的计数开始工作,如输入的是a,怎counta+1,就可以了,结束的标志是回车,及0ah.第三题:在主程序中调用子函数count,完成将每个在数组mark里的成绩一一取出,分别判定其大小而放入

4、统计6069 分,7079 分,8089 分,9099 分和100 分的人数的S6, S7, S8, S9 和S10 单元中,在屏幕上依次显示出S6, S7, S8, S9 和S10中的数。第四题:使用条件汇编和重复汇编。判断当给定名为X 的字符串长度大于5 时,重复 ADD AX, AX10 次。第五题:使类型1CH 的中断向量指向中断处理程序COUNT,COUNT中 1CH 中断每调用一次则给num加一,计算出num最后的值后存入单元M 中。第六题:接收从键盘输入的10 个十进制数字,输入回车符则停止输入,在bx里存入数组7,5,9,1,3,6,8,0,2,4的符号地址,每键入一个数后都存

5、入al,调用xlat使得(al)(al)+(bx)al中为译码后的数,存入string并一次输出所有的数。实验中遇到的问题及其解决方法1、 问题主程序与子程序之间,参数的传递问题,搞了好久才明白,在不太懂子程序的情况,我觉得可以将两个程序写在一个代码段中,省的把自己弄晕了。2、 问题Xlat转换问题,上课可能是没有太认真听吧,做题的时候懵了,这是什么东西,后来XX以后才发现原来就是调用xlat使得(al)(al)+(bx)的简便表达,这是一个加密的好方法。3、 问题List表一开始怎么也找不到,后来翻书才发现要给它取名字(asm文件名),它才会出现,果然还是上课没有认真听讲。4、 问题实验五的

6、list表查看,明白了原来宏展开是这个意思,直接在代码中“翻译”了一下,但是在我们自己编程序的时候却减少了许多不必要的麻烦。实验结果一二三四五六2016年4 月23 日建议1、 可以考虑增加实验时间。汇编语言不是很难,就是学生不好熟悉这种语言,熟悉以后就好多了,因此可以多次实验,让学生快速理解汇编语言。2、 可以考虑设计一些更加有趣的题目。3、 老师课堂可以互动就更好了,提问题,让学生来解答,增加同学们上课的认真度,增加课堂活跃的范围。备注源代码见附录附录实验一: 0000 DATA SEGMENT 0000 0000 FFFF 0002 0003 ARRAY1 DW 0, -1, 2, 3,

7、 4, -5, 6, -7, 8 , 9 , -10 0004 FFFB 0006 FFF9 0008 0009 FFF6 = 0016 COUNT EQU $ - ARRAY1 0016 0014 ARRAY2 DW 20 DUP(?) ;求绝对值? 蟠嫒氲男率? ? 003E ? LEN DW ? ;新数组长? ? 0040 0D 0A 42 65 66 6F 72 MSG1 DB 13, 10, Before Sort : $ 65 20 20 53 6F 72 74 20 3A 20 24 0052 0D 0A 41 66 74 65 72 MSG2 DB 13, 10, After

8、Sort : $ 20 20 20 53 6F 72 74 20 3A 20 24 0064 DATA ENDS 0000 CODE SEGMENT ASSUME CS: CODE, DS: DATA 0000 START: 0000 B8 - R MOV AX, DATA 0003 8E D8 MOV DS, AX 0005 B4 09 MOV AH, 09H 0007 8D 16 0040 R LEA DX, MSG1 000B CD 21 INT 21H ;显示提示字符串MSG1 000D 8D 36 0000 R LEA SI, ARRAY1 0011 E8 006C R CALL O

9、UTPUT ;调用输出数组子程序OUTPU T,显示原始数据 0014 E8 004B R CALL Absolute ;调用求绝对值子程序Absol ute,求绝对值 0017 E8 002D R CALL SORT ;调用排序子程序SORT对数? 榕判? 001A B4 09 MOV AH, 09H 001C 8D 16 0052 R LEA DX, MSG2 0020 CD 21 INT 21H ;显示提示字符串MSG2 0022 8D 36 0016 R LEA SI, ARRAY2 0026 E8 006C R CALL OUTPUT ;调用输出数组子程序OUTPU T,显示求绝对值

10、后的数据 0029 EXIT: 0029 B4 4C MOV AH, 4CH 002B CD 21 INT 21H ;主程序返回DOS ;- - ;子程序名:SORT ;功能: 002D SORT PROC NEAR ;此处请增添代码 002D B9 0016 MOV CX, COUNT 0030 D1 E9 SHR CX, 1 0032 49 DEC CX 0033 51 S0: PUSH CX 0034 8B FE MOV DI, SI 0036 8B 05 S1: MOV AX, DI 0038 3B 45 02 CMP AX, DI + 2 003B 77 05 JA S3 003D

11、87 45 02 XCHG AX, DI + 2 0040 87 05 XCHG AX, DI 0042 83 C7 02 S3: ADD DI, 2 0045 E2 EF LOOP S1 0047 59 POP CX 0048 E2 E9 LOOP S0 004A C3 RET 004B SORT ENDP ;- - ;子程序名:Absolute ;功能:求绝对值 004B Absolute PROC NEAR ;此处请增添代码 004B 8D 36 0000 R LEA SI, ARRAY1 004F 8D 3E 0016 R LEA DI, ARRAY2 0053 B9 0016 MOV

12、 CX, COUNT 0056 D1 E9 SHR CX, 1 0058 ABS: 1.ASM(60): warning A4016: Reserved word used as symbol: ABS 0058 8B 04 MOV AX, SI 005A 3D 0000 CMP AX, 0 005D 7D 02 JGE ABS2 005F F7 D8 NEG AX 0061 ABS2: 0061 89 05 MOV DI, AX 0063 83 C6 02 ADD SI, 2 0066 83 C7 02 ADD DI, 2 0069 E2 ED LOOP ABS 006B C3 RET 00

13、6C Absolute ENDP ;- - ;子程序名:OUTPUT ;功能:输出数组 006C OUTPUT PROC NEAR ;此处请增添代码 006C B4 02 MOV AH, 2 006E B2 0D MOV DL, 13 0070 CD 21 INT 21H 0072 B2 0A MOV DL, 10 0074 CD 21 INT 21H 0076 B9 0016 MOV CX, COUNT 0079 D1 E9 SHR CX, 1 007B ZH3: 007B 8B 04 MOV AX, SI 007D 3D 0000 CMP AX, 0 0080 7D 0A JGE ZH0

14、0082 F7 D8 NEG AX Microsoft (R) Macro Assembler Version 5.00 4/23/16 15:17:35 Page 1-3 0084 89 04 MOV SI, AX 0086 B4 02 MOV AH, 2 0088 B2 2D MOV DL, - 008A CD 21 INT 21H 008C 8B 04 ZH0:MOV AX, SI 008E BB 000A MOV BX, 10 0091 51 PUSH CX 0092 B9 0000 MOV CX, 0 0095 BA 0000 ZH1:MOV DX, 0 0098 F7 F3 DIV

15、 BX 009A 80 C2 30 ADD DL, 0 009D 52 PUSH DX 009E 41 INC CX 009F 3D 0000 CMP AX, 0 00A2 75 F1 JNZ ZH1 00A4 B4 02 MOV AH, 2 00A6 5A ZH2:POP DX 00A7 CD 21 INT 21H 00A9 E2 FB LOOP ZH2 00AB 59 POP CX 00AC B2 20 MOV DL, 00AE CD 21 INT 21H 00B0 83 C6 02 ADD SI, 2 00B3 E2 C6 LOOP ZH3 00B5 C3 RET 00B6 OUTPUT

16、 ENDP ;- - 00B6 CODE ENDS END START 实验二0000 DATAS SEGMENT 0000 0005 COUNT db 5 dup (0) 00 0005 DATAS ENDS 0000 CODES SEGMENT ASSUME CS:CODES,DS:DATAS 0000 START: 0000 1E push ds 0001 2B C0 sub ax,ax 0003 50 push ax 0004 B8 - R MOV AX,DATAS 0007 8E D8 MOV DS,AX 0009 next: 0009 B4 01 mov ah,01h 000B C

17、D 21 int 21h 000D 3C 31 cmp al,1 000F 74 13 jz bijiao1 0011 3C 32 cmp al,2 0013 74 1C jz bijiao2 0015 3C 33 cmp al,3 0017 74 28 jz bijiao3 0019 3C 34 cmp al,4 001B 74 34 jz bijiao4 001D 3C 35 cmp al,5 001F 74 40 jz bijiao5 0021 EB 4E 90 jmp exit 0024 bijiao1: 0024 8A 0E 0000 R mov cl,COUNT 0028 80 C

18、1 01 add cl,1 002B 88 0E 0000 R mov COUNT0,cl 002F EB D8 jmp next 0031 bijiao2: 0031 BB 0001 mov bx,1 0034 8A 8F 0000 R mov cl,COUNTbx 0038 80 C1 01 add cl,1 003B 88 8F 0000 R mov COUNTbx,cl 003F EB C8 jmp next 0041 bijiao3: 0041 BB 0002 mov bx,2 0044 8A 8F 0000 R mov cl,COUNTbx 0048 80 C1 01 add cl

19、,1 004B 88 8F 0000 R mov COUNTbx,cl 004F EB B8 jmp next 0051 bijiao4: 0051 BB 0003 mov bx,3 0054 8A 8F 0000 R mov cl,COUNTbx 0058 80 C1 01 add cl,1 005B 88 8F 0000 R mov COUNTbx,cl 005F EB A8 jmp next 0061 bijiao5: 0061 BB 0004 mov bx,4 0064 8A 8F 0000 R mov cl,COUNTbx Microsoft (R) Macro Assembler

20、Version 5.00 4/23/16 15:23:29 Page 1-2 0068 80 C1 01 add cl,1 006B 88 8F 0000 R mov COUNTbx,cl 006F EB 98 jmp next 0071 exit: 0071 8A 16 0000 R mov dl,COUNT0 0075 80 C2 30 add dl,30h 0078 B4 02 mov ah,02 007A CD 21 int 21h 007C 8A 16 0001 R mov dl,COUNT1 0080 80 C2 30 add dl,30h 0083 B4 02 mov ah,02

21、 0085 CD 21 int 21h 0087 8A 16 0002 R mov dl,COUNT2 008B 80 C2 30 add dl,30h 008E B4 02 mov ah,02 0090 CD 21 int 21h 0092 8A 16 0003 R mov dl,COUNT3 0096 80 C2 30 add dl,30h 0099 B4 02 mov ah,02 009B 8A 16 0004 R mov dl,COUNT4 009F 80 C2 30 add dl,30h 00A2 B4 02 mov ah,02 00A4 CD 21 int 21h 00A6 CD

22、21 int 21h 00A8 B4 4C mov ah,4ch 00AA CD 21 int 21h 00AC CODES ENDS END START 实验三 0000 dataseg segment 0000 0D 0A 74 68 65 20 72 but db 0DH,0AH,the result $ 65 73 75 6C 74 20 20 20 24 0010 004C 0045 0054 005A grade dw 76,69,84,90,73,88,99,63,100,80 0049 0058 0063 003F 0064 0050 0024 00 s6 db 0 0025

23、00 s7 db 0 0026 00 s8 db 0 0027 00 s9 db 0 0028 00 s10 db 0 0029 dataseg ends 0000 cseg segment 0000 main proc far assume cs:cseg,ds:dataseg 0000 start: 0000 1E push ds 0001 2B C0 sub ax,ax 0003 50 push ax 0004 B8 - R mov ax,dataseg 0007 8E D8 mov ds,ax 0009 B9 000A mov cx,10 000C E8 0017 R call cou

24、nt 000F E8 0038 R call disp 0012 B4 01 mov ah,1 0014 CD 21 int 21h 0016 CB ret 0017 main endp 0017 count proc near 0017 BE 0000 mov si,0 001A 8B 84 0010 R next:mov ax,gradesi 001E B3 0A mov bl,10 0020 F6 F3 div bl 0022 8A D8 mov bl,al 0024 B7 00 mov bh,0 0026 83 EB 06 sub bx,6 0029 83 FB 00 cmp bx,0

25、 002C 73 00 jae next1 002E next1: 002E FE 87 0024 R inc s6bx 0032 83 C6 02 add si,2 0035 E2 E3 loop next 0037 C3 ret 0038 count endp 0038 disp proc near 0038 8D 36 0024 R lea si,s6 003C B9 0005 mov cx,5 003F loop1: 003F BA 0000 R mov dx,OFFSET but 0042 B4 09 mov ah,9 0044 CD 21 int 21h 0046 8A 14 mo

26、v dl,si 0048 80 C2 30 add dl,30h 004B B4 02 mov ah,2 004D CD 21 int 21h 004F 46 inc si 0050 E2 ED loop loop1 0052 C3 ret 0053 disp endp 0053 B4 4C mov ah,4ch 0055 CD 21 int 21h 0057 cseg ends end start 实验四 0000 code segment 0000 start: 0000 31 32 33 34 35 36 x db 123456 if ($ - x) GT 5 rept 10 add ax,ax endm 0006 03 C0 1 add ax,ax 0008 03 C0 1 add ax,ax 000A 03 C0 1 add ax,ax 000C 03 C0 1 add ax,ax 000E 03 C0 1 add ax,ax 0010 03 C0 1 add ax,ax 0012 03 C0 1 add ax,ax 0014 03 C0 1 add ax,ax

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

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