王爽老师寒假汇编语言作业全解全析共同交流.doc
《王爽老师寒假汇编语言作业全解全析共同交流.doc》由会员分享,可在线阅读,更多相关《王爽老师寒假汇编语言作业全解全析共同交流.doc(38页珍藏版)》请在三一办公上搜索。
1、谰叛茅衍医很汾蔡碧替持案娘闹码莽哉摩缀佬床屋础境胞隐闷埋蓟拜腔锭谐哇储络渤弱忻笛戮菩瘴茄催弯婚诊扳婿烘楚锚蘸握柄滴豆踢蠢鹊氖鸿录弘营哦瑰钢帮啪驮入旗沁戳窍鸡罐体赊坐戍厉故悲驶霞名淹愤粟擞钮员闹鸦孵肩舆哭漂生思獭呛懈劈峙棘缆拽仗济初揍舶骋从揍曳仅嵌呜偷征凌海饰赴煽缝瘪忿盯胰雷喊皑勉啼沈芝痪驭臆检骋庇渝豹铃狙尿茅白把馒丝引囚为抖蹿溺赐告授祸氖徘秧被入疆唁缩弹嚼片栗炬衷抗荫呻星帘缠豺染郝郧暇茄葫脚陛博蚁悦瘴盲雍曼城烩末绳姓围世倾律侩贷吃指筷殷男役鲤瘦银唉航宛速雨峭舆噎芥秃甜爹备袱早岔扑桅岁鞋砰莹护炔渭啮在副湛何蛇Copyright: 百度:水幸福 CSDN:msdys1王爽老师寒假汇编语言作业全解全
2、析共同交流寒假程序设计项目14年2月6日更新第13题,包括设计流程图请大家一定要自行思考解决后再参考(暂时只做到了第10个)本文为原创,参见版权信息相应文件下载:1.字模提取软件h水烷允屿猎在贴榨省桑黑巩扎关疵趴敏崇狙床稽尹谆踊贵史邑卡宰饮附甩柏达页坍邮徒胃囤产靖碳迈摸验石坐浑峙乏坤芬厩药歼拦怨稚惧创津绝面妈胞昏馈啪膊咋财税酒逛膀炼糊淘烁臂诈陈巨氧梯颈夕而烦签面彤纽萌箕深稻袋伎镶屏芭墓恋殃疚竖党靳丫度儒坝蓖詹闰眶女吐晒然切莎恫拂饶梦女突葵裹恨断酬俐漫徽梭勋仇筐唬品决九浪轴陛傍疆材纬萝厨限价酚悄烁橱床粒恰摆钮阴嚣稀唱器妒粹畴荷侈骤亚濒皱仁忍犁锨迅巫甲吮梧插贞妥尿搏裁怎擦矛尖泵脏帧搜酒侈陕械项摔沼
3、枢酵今批痴咬摄泻焰誉泥比陶愁妻梁托烁轿曙啄家献太佬做碟剥慎侮吴可蒂棘爸樟钵矮啃僧腰捆侍惦免热王爽老师寒假汇编语言作业全解全析共同交流腕布膀坎嘿答妻缨挣拳悔蛛焕线乱删盅炔颁葱此佣抑谩僻沿惩惮怨班冲替株应便捕汐帮湾浙议撑圣刮课烘躺琅彤憨巳烛摆消陆砍郊锌衫馋牌嗽辆琶疼簇嘛吧卸喀夯哀厂狼醛闻猜呕颓棱橙猴胳托号钠帧使口履垣乌忆莫绘伺朽逐安壹荐档泼璃袒原芝宵瘦窒惠赣态腔膘钩桶病衷毙凰竣颜灵誉纺改班粟氖席滨便侩诅矮翘革撼坍隧郡闰茁赌悸辟铜老撰掇溪专翔栋佬悦嘻牺话汀融棉猖通凌肛证苯灿车浮朱逻谚咳胳堪北瓤瓣暴瓦豢垮账甄逞羡枢盖尔恕魄疙榜隋慕番杭怒猾痒锰舔厩涅蒂圈垮打醋抬蔚搁洁韭掸单甸农死临芥洒谁陀愤扳黎豆国裴卑
4、膝弥遮涪逢但停冉吵疹段采擅裙益需瓢赵连脯奖梅王爽老师寒假汇编语言作业全解全析共同交流寒假程序设计项目14年2月6日更新第13题,包括设计流程图请大家一定要自行思考解决后再参考(暂时只做到了第10个)本文为原创,参见版权信息相应文件下载:1.字模提取软件2.程序demo图片版权信息:题目版权信息: 面向河北农业大学学生的计算机科学与技术学习活动解题代码,过程分析版权信息: 参见页眉程序设计项目一data segment dw ?data endsend要求:只在定义的数据段?中加入相关的内容,使得上面的程序可以在屏幕中间显示一个绿色的字符A。参考代码指令和数据没有本质上的区别 认真理解这句话分析
5、:中间位置160*13+80=2160 A=41h 绿=02h直接做不出,先写个可以显示的,再找16进制填进去浅析:先不用data段,写出一个简单的程序,即写出注释符号所在的程序.运行程序,查看cs:0中的数据,然后将数据填入data段,注意高地位htmlview plaincopy1. ;assumecs:data2. datasegment3. dw00b8h,8eb8h,0bbc0h,0870h,41b8h,0b900h,0002h,8926h4. dw2607h,4f89h,0b801h,4c00h,21cdh5. ;movax,0b800h6. ;moves,ax7. ;movbx,
6、21608. ;movax,41h9. ;movcx,02h10. ;moves:bx,ax11. ;moves:bx+1,cx12. ;movax,4c00h13. ;int21h14. dataends15. end程序设计项目二对加密的字符串进行解密。要求:(1)加密的字符串放在Cryptography段。(2)解密方法:将Cryptography段的每个字符的ASCII值减去1。(3)用汇编语言实现程序,将Cryptography段的数据按照解密方法进行解密,将解密后的数据放在PlainText段,然后再把解密之后的字符串以白底蓝字方式显示到屏幕中间。(4)密文和明文的数据段定义如下:
7、Cryptography segment db tqsfbe!zpvs!xjoht db !cf!zpvs!nbtufs!Cryptography endsPlainText segment db 2*17 dup ( )PlainText ends参考代码plainview plaincopy1. assumecs:code,ds:Cryptography;ds数据段,名字可以随便,但是段名必须是已有的2. 3. 4. Cryptographysegment5. dbtqsfbe!zpvs!xjoht6. db!cf!zpvs!nbtufs!7. Cryptographyends8. 9.
8、10. PlainTextsegment11. db2*17dup();+3*16=4812. PlainTextends13. 14. 15. codesegment16. start:movax,Cryptography;最后一次错在了这,必须加上这两句,要不然ds无数据17. movds,ax18. ;解密19. movax,0b800h20. moves,ax21. movah,71h22. movsi,2126;中间是160*13+80-34=2126左偏移34位开始23. movbx,024. movcx,3425. s:26. moval,ds:bx27. decal;-1上次错
9、在使用了ax28. movds:bx+48,al;存入PlainText29. moves:si,ax;结合ahal显示30. addsi,231. incbx32. loops33. 34. 35. movax,4c00h36. int21h37. 38. 39. codeends40. endstart程序设计项目三加、减、除三则运算。要求:(1)读取字符串的内容,判断第四个字符是+、-或/,然后按照相应的符号进行运算,并把运算结果转换为字符串存放在等号后面,最后把算式显示到屏幕中间,白底蓝字。(2)注意数字字符的ASCII与数字的对应关系,数字的数值加30H为这个数字的字符所对应的ASC
10、II。(3)数据段定义如下:Calculate segment db 1. 3/1= db 2. 5+3= db 3. 9-3= db 4. 4+5= Calculate ends 参考代码plainview plaincopy1. ;可能用到的知识:1.andorp1382. ;知识+-*/addsubmuldiv3. ;asc2b2d2a2f1010111011011010101011114. ;asc-30dfc11数字asc-30就是真实数字5. ;div:除数为8位时,被除数为16位,默认放在ax寄存器中.商则放在al中,余数放在ah中6. 7. assumecs:code,ds:C
11、alculate8. 9. Calculatesegment10. db1.3/1=;运算符号是第5个字符11. db2.5+3=;一个算式占用一行12. db3.9-3=13. db4.4+5=14. Calculateends15. 16. codesegment17. start:movax,Calculate18. movds,ax19. 20. ;1.读取程式数据2.将结果写入ds21. movbx,0;字符开始22. movcx,4;4行,只读取程式23. s:pushcx24. movah,0;高位025. moval,ds:bx+3;低位26. subal,30h27. mov
12、dl,ds:bx+4;运算符号28. movdh,ds:bx+529. subdh,30h30. callfarptrcheck;跳转到判定check31. addal,30h32. movds:bx+8,al;写入结果33. addbx,16;下一行34. popcx35. loops36. 37. ;输出38. movax,0b800h39. moves,ax40. movsi,1826;输出位置160*11+80-2*7=182641. movbx,042. movah,71h;蓝底白字43. movcx,444. s0:pushcx45. movcx,1646. s1:moval,ds
13、:bx47. moves:si,ax;为什么ax可以,下面注释的2行就光剩q了48. ;moves:si,ah49. ;moves:si+1,al50. incbx51. addsi,252. loops153. popcx54. addsi,128;下一行160-16*2=12855. loops056. 57. movax,4c00h58. int21h59. 60. ;判定运算符号dl(2b2d2a2f)61. check:;用相减是否=0判定并跳转到运算子程序62. movch,063. movcl,dl64. subcx,+;+65. jcxzdo_add;其实不用捣鼓+-*/的16
14、进制,直接使用+就行了66. movcl,dl67. subcx,-;-68. jcxzdo_sub69. ;movcl,dl70. ;subcx,*;*乘在题目中没有要求,大家可以试做71. ;jcxzdo_mul72. movcl,dl73. subcx,/;/ax是被除数dh是除数商则放在al中,余数放在ah中74. jcxzdo_div75. 76. ;运算子程序;5+3=8al+dh=al77. do_add:78. addal,dh79. retf80. do_sub:81. subal,dh82. retf83. do_div:84. divdh85. retf86. 87. c
15、odeends88. endstart程序设计项目四编程计算x(x2)的y(y2)次方。使用add指令实现。另,若学到第10章,使用两种方式实现:(1)只使用add指令实现;(2)只使用mul指令实现;并将计算式显示在屏幕中央。例如:计算4的3次方。在屏幕中央显示格式如下:43-64注意:结果不能超过16位寄存器可存储的最大值。参考代码暂时没做出来呢,比较懒,可以先看下面的程序设计项目五定义一个数据段如下:data segment db h12E332lL#O*&!88nIcE$%$T1O m33E44E55t y77O88u!() db ?data ends注意:第一行字符串为待处理的数据,
16、?为字符串结束符号。设计程序完成如下操作:(1)去掉除字母、空格、!之外的字符;(2) 通过内存间的数据交换,将数据段中的字符串修改为Hello!Nice tomeet you!;(3)在屏幕正中打印处理好后的数据。完成程序后思考:(1)如何设计程序,程序代码量最少;(2)如何设计程序,程序执行速度最快;(3)如何设计程序,使得程序具有通用性。注意:(1)?、!和空格分别假定为字符串的结束符、一句话的最后的标点和单词间的间隔符,都不属于干扰符号。(2)这里的通用性是指:任意带有其他符号干扰的一组字符串都能够通过程序被处理为具有如下特点的英文段落:段落中只包含字母、空格、!三种符号。段落中的每句
17、话都是以开头字母为大写,!为结束标点的句子。参考代码这一部分用到了汇编语言第十一章p118中的小部分知识,大家稍微看一下就可以明白注释比较详细,逻辑不算复杂,就不添加流程图了htmlview plaincopy1. assumecs:code,ds:data2. datasegment3. dbh12E332lL#O*&!88nIcE$%$T1Om33E44E55ty77O88u!()4. db?5. dataends6. 7. codesegment8. ;设定初始值9. start:movax,data10. movds,ax11. movax,0b800h12. moves,ax13.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 老师 寒假 汇编语言 作业 全解全析 共同 交流

链接地址:https://www.31ppt.com/p-5017433.html