汇编求助,求高手解答

蛋疼汇编 2014-05-02 06:44:08
从键盘输入5个无符号数(最大65535),将这5个无符号数按降序排列,并将排好序后的结果显示在屏幕上;
汇编还没学太懂,做这题表示好蛋疼啊,求汇编高手帮忙解答,感激万分
...全文
215 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuexicheng 2014-05-08
  • 打赏
  • 举报
回复
这题目好凶残要解决几个问题首先就是接收键盘输入然后将输入的数据保存起来,这有两种方法第一种就是直接读60h端口获得按键的通码然后一一比对输入的是否为数字是的话就保存下来这个可以将通码和具体的按键字符建立一个具有映射关系的表来做然后直接查表就可以了,另外一个方法不用查表可以调用16h号bios中断的0号功能获取键盘苏入的asc码然后将输入的asc码转化为相应的十进制数保存起来,这个方法不用建立表但是要读键盘缓冲区如果键盘缓冲区不为空有点麻烦,接下来就是将得到的十进制数转化为想要的5位数以内的数字其实也就是你输入的数但是输入后读出来的只是每一位数都占了一个字节的数,所以还得将它们转化为那个输入的数字,然后将得到的数存入一个缓冲区以便五个数输入结束以后进行冒泡法排序,接下来就是冒泡排序了,排序结束后得到了按顺序排列的五个数,还要显示在屏幕上(太凶残了),那就要将这五个数拆解已得到它的各个数位即不断的除以10只到商为0为止,但要记得每次得到的数位都要保存好最先得到的是各位其次最后才是最高位将各个数位对应的asc字符保存到一段连续的内存空间里面由低字节到高字节顺序存放的话那么这个数就是倒过来的个位放在了最前面那么显示的时候还要费点周折把它倒过来才是正常的如果不想显示的时候费事那就在存放各个数位的asc字符的时候想办法似的由低字节到高字节依次存放的是拆解的那个数的最高位到个位,不管怎样反正得费事。在此可以选择拆解一个数显示一个数也可以全都拆解完了再显示。基本的步骤就是这些了。 不得不吐槽一句汇编真正强大的地方是对硬件的操控,这道题对于硬件只是涉及了显存和键盘而已要体会对这两个硬件的控制也不用弄得如此复杂吧这道题的内涵更在于算法本身至于那些硬件细节很多的汇编里面都会涉及,这题出的实在是有点没有意义,本来复杂的算法就不是汇编所擅长的,正如楼上说的用C写再看看汇编就好
To-Big_Fish 2014-05-07
  • 打赏
  • 举报
回复
先的定义5个数据段,每个数据段的格式可以为 buf1 5 DB buf2 5 DB 。。。。 然后每个DB保存输入的数据字符,比如输入 12345 ,buf1中的数据段 就保存 12345 五个字符 输入245 buf2 中就保存 00245 排序的话,你就只需要进行比较每个数据段相应的字符的大小就可以了,可以采用冒泡或者选择都可以 输出的话 ,就可以直接将数据段的字符直接输出
看雪山海间 2014-05-07
  • 打赏
  • 举报
回复
先用C写一下,然后逆向成汇编。
e379278011 2014-05-07
  • 打赏
  • 举报
回复
buf1 5 DB ;能解释下不? LZ你完蛋了! 一般谁会DT 的给你答案呀。。。 如果是书上的 题目,一般会在前面给出例子,参考例子 慢慢折腾吧,如果 是老师出的,哼哼。。。。
WJN92 2014-05-06
  • 打赏
  • 举报
回复
写算法的话汇编的确很辛苦.你也可以用c写好再看看它的汇编代码

21,498

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧