电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

中南大学试题

  • 资源ID:98817155       资源大小:36.41KB        全文页数:18页
  • 资源格式: DOCX        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

中南大学试题

;用汇编语言实现实现冒泡排序,并将排序后的数输出DATAS SEGMENT A dw 3 10 8 56 22 36 1 43 31 3 N=$-A ;计算数字所占的字节数DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART:MOV AX,DATAS MOV DS,AX MOV SI,0;SI遍历数字;前一个数的地址 MOV CX,N/2-1;设置循环次数,M(M=N/2)个数需要,循环M-1次 CALL BUBBLE;调用BUBBLE将原来的数排序;输出排序后的数 MOV CX,N/2;循环M次输出排序后的M个数 MOV SI,0;SI遍历排序后的数 MOV DI,0 ;用DI记录数字的位数 MOV BP,N+5;BP用于遍历存储的转化后的字符的位置SHOW: PUSH CX;循环次数入栈 MOV DX,0;由于将要进行16位除需要置高16位为0 MOV AX,SI ;低16位为排序后的数 CALL DTOC ;调用DTOC将十进制数转换为字符串 CALL SHOW_STR ;调用SHOW_STR将一个数转化得到的字符串输出 ADD SI,2;下一个数 POP CX;循环次数出栈栈 LOOP SHOW MOV AH,4CH INT 21H;冒泡排序 BUBBLE PROCL1:PUSH CX;将循环次数入栈LEA SI,A;SI遍历DATAS数据段的数字L2: MOV AX,ASI;将前一个数存于AXCMP AX,ASI+2;比较前后两个数JBE NEXT;如果前一个数小于或等于后一个数则继续本轮的比较XCHG AX,ASI+2;否则,交换前后两个数的位置MOV ASI,AXNEXT:ADD SI,2;下一个数 LOOP L2;注意内层循环的次数已经确定了 POP CX;将循环次数出栈 LOOP L1;下一轮比较 RETBUBBLE ENDP; 将十进制数转换为字符串并储存起来 DTOC PROC S:MOV CX,10 ;将除数10,放入CX中 CALL DIVDW ;调用DIVDW程序 ADD CL,30H ;把数字转换为ASCII码,这样就能显示了 MOV DS:BP,CL ;把ASCII码放到内存中 INC DI ;用DI记录循环的次数 PUSH AX ;将低16位入栈 ADD AX,DX ;将高位与低位相加,接着判断是否已经除尽 JZ BACK ;除尽后返回调用处 POP AX;将低16位出栈 DEC BP ;逆序存放转化后的字符,便于主程序调用SHOW_STRJMP S BACK:POP AX ;为了得到正确的IP值,需要出栈一次 RET DTOC ENDP;子程序定义开始,功能是分离被除数的各个位的数字;公式:X/N=int(H/N)*65536+rem(H/N)*65536+L/N DIVDW PROC PUSH AX ;低16位入栈 MOV AX,DX ;将高16位写入AX, MOV DX,0 ;将高16位置零 DIV CX ;将新的数除10, MOV BX,AX ;将商int(H/N)转移到BX,默认余数rem(H/N)在DX POP AX ;将低16位出栈, DIV CX ;将rem(H/N)*65536+L除10,默认余数在DX MOV CX,DX ;将余数转移到CX MOV DX,BX ;将商int(H/N)转移到dx,相当于int(H/N)*65536 RET ;子程序定义结束 DIVDW ENDP ;实现字符串的输出 SHOW_STR PROCS2:MOV AH,2;输出数字转化后的字符串 MOV DL,DS:BP INT 21H INC BP;顺序输出 DEC DI;数字的位数减一 JZ OK;字符串输出完了就结束 JMP S2;否则继续输出OK:MOV AH,2;输出空格 MOV DL,0 INT 21H RETSHOW_STR ENDP CODES ENDSEND START第一个累加和的源码:    AREA TEXT,CODE,READWRITE      ENTRY      MOV R0,#100  ;循环数目      MOV R1,#0        ;初始化数据  LOOP      ADD R1,R1,R0  ;将数据进行相加,获得最后的数据      SUBS R0,R0,#1 ;循环数据R0减去1      CMP R0,#0        ;将R0与0比较看循环是否结束      BNE LOOP        ;判断循环是否结束,接受则进行下面的步骤        LDR R2,=RESULT      STR R1,R2  RESULT      DCD 0  STOP      B STOP 第二个排序的源码附上:    ;排列算法:先将所有的数据与第一个进行比较,最后取出最小的数据放到第一个内存单元中      ;然后再从第二个内存单元开始进行比较,将第二小的数据放到第二个内存单元中,      ;以此内推则能将十个数据进行排列。      AREA TEXT,CODE,READWRITE      ENTRY      LDR R0,=DATA      ;获得DATA数据的起始地址      MOV R1,R0          MOV R5,#9            ;开始的循环数目是10次,所以应该从9开始      MOV R6,R5  COMPARE      ADD R0,R0,#4      ;将R0所存储的地址+4表示为下一个要比较的数的地址        SUB R6,R6,#1  ;循环1次减1      LDR R2,R1  ;将放在寄存器中的数据取出进行大小比较      LDR R3,R0      CMP R3,R2      MOVCC R7,R2  ;如果后面的地址的数值比前一个小则交换他们的数据      MOVCC R2,R3      MOVCC R3,R7      STR R2,R1  ;将数据存储到相应的内存单元中      STR R3,R0      CMP R6,#0            ;看每次的循环是否结束      BNE COMPARE      ADD R1,R1,#4      ;每次循环结束以后将初始的指向的内存地址后移一个单元      MOV R0,R1            ;重新初始化上个循环中的寄存器中保存的地址      SUB R5,R5,#1      ;每次循环以后上面在以后的循环中的次数都会减1      MOV R6,R5      CMP R5,#0    ;判断所有的循环是否结束      BNE COMPARE  DATA      DCD 9,4,6,7,8,1,3,2,0,5  STOP      B STOP        ARM汇编编程-实现双层for循环;        AREA     Block,     CODE                   声明代码段       ENTRY              for(i = 0; i < 10; i+)                    for(j = i+1; j<=10; j+)                           z +=1      START       MOV R1, #0          i = 0       MOV R0, #0          Z      LOOP       CMP R1, #10                i < 10       BEQ STOP             ADD R2, R1, #1            j = i+1LOOP1         CMP R2, #10+1                   j<=10       ADDNE R0, R0, #1       z +=1       ADDNE R2, R2, #1       j+       BNE LOOP1       ADD R1, R1, #1             i+       B LOOP      STOP       MOV R0, #0x18       LDR R1, =0x20026       SWI 0x123456             END                   数据块拷贝,利用LDR/STR指令; num EQU      10        AREA     BlockData,      DATA             声明数据段src   DCD      0,1,2,3,4,5,6,7,8,9                   定义十个数dst   SPACE    10*4        AREA     Block,     CODE                   声明代码段       ENTRY START       LDR       R1, =src                             LDR R2, =dst       MOV R3, #num      LOOP       LDR R0, R1, #4       STR R0, R2, #4       SUBS R3, R3, #1       BNE LOOP      STOP       MOV R0, #0x18       LDR R1, =0x20026       SWI 0x123456             END  汇编语言程序示例 ;例五:利用跳转表实现程序跳转;项目名:E

注意事项

本文(中南大学试题)为本站会员(101****457)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.