这是一道简单的汇编题,快来,快来

蛋疼汇编 2014-05-02 06:50:14
从键盘输入字符串 (可能还有大写字母,小写字母,数字及空格) ,对该字符串进行处理,把大写字母变成小写字母,小写字母变成大写字母,去掉数字及空格,然后再屏幕上显示该字符串;
汇编学得较差,不知怎么解答,求大腿帮助
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fhqdx0012 2014-05-26
  • 打赏
  • 举报
回复
引用 1 楼 yuexicheng 的回复:
1、调用bios的16h号中断0号功能读取循环读取键盘缓冲区的输入 2、每读取一次就将在al中得到的字符asc码用cmp进行比较 3、如果不属于大小写字母区间就重新读取跳回到1,如果属于大写字母就用or al,00100000b改写成小写字母然后写入显存,如果属于小写字母就用and al,111011111b将其改写为大写字母然后写入显存(由于将会频繁写入显存 所以可以将这个功能写一个子程序以供调用) 4、再返回1继续用16h读键盘缓冲区,重复以上步骤 呃 这样写出来的程序可以不断的从键盘接受输入再在屏幕上显示即输入一个显示一个而不是等待字符串输入结束之后再一次性显示,你可以在用16h中断读取键盘缓冲区的输入之后将这个输入暂存到你在程序中的开辟的数据缓存区域,待输入完事之后再从数据缓存区域逐一读取字符进行比较看是否需要舍弃或者改变大小写,由于是字符串那么要有一个符号标记字符串的结束以便于告诉16h中断什么时候结束对键盘缓冲区的读取将程序转到显示字符串上来,至于这个结尾符你可以自行定义。至于用and和or就可以改变大小写只要看看同一个字母的大小写的二进制asc码就可以发现它们只在位5即第六个数位上有差别。程序就没有了,那个自己写写就当练手了,写多了就好了
大小写互换 xor al,20h 就可以了 去掉空格 也是xor al,20h就可以
ShayneLee 2014-05-25
  • 打赏
  • 举报
回复
路过的来学习
lr2131 2014-05-19
  • 打赏
  • 举报
回复
引用 3 楼 kxltsuperr 的回复:
用C编写,然后反汇编,不知道这样的办法好不好。
哥们,我以前也总这么回答别人问题,搞不定,用C写了看汇编,呵呵。 实在搞不定的时候,这确实是个好方法,不是么。
小小爬虾 2014-05-18
  • 打赏
  • 举报
回复
用C编写,然后反汇编,不知道这样的办法好不好。
Mr_Alvin 2014-05-05
  • 打赏
  • 举报
回复
正在学的路过
yuexicheng 2014-05-02
  • 打赏
  • 举报
回复
1、调用bios的16h号中断0号功能读取循环读取键盘缓冲区的输入 2、每读取一次就将在al中得到的字符asc码用cmp进行比较 3、如果不属于大小写字母区间就重新读取跳回到1,如果属于大写字母就用or al,00100000b改写成小写字母然后写入显存,如果属于小写字母就用and al,111011111b将其改写为大写字母然后写入显存(由于将会频繁写入显存 所以可以将这个功能写一个子程序以供调用) 4、再返回1继续用16h读键盘缓冲区,重复以上步骤 呃 这样写出来的程序可以不断的从键盘接受输入再在屏幕上显示即输入一个显示一个而不是等待字符串输入结束之后再一次性显示,你可以在用16h中断读取键盘缓冲区的输入之后将这个输入暂存到你在程序中的开辟的数据缓存区域,待输入完事之后再从数据缓存区域逐一读取字符进行比较看是否需要舍弃或者改变大小写,由于是字符串那么要有一个符号标记字符串的结束以便于告诉16h中断什么时候结束对键盘缓冲区的读取将程序转到显示字符串上来,至于这个结尾符你可以自行定义。至于用and和or就可以改变大小写只要看看同一个字母的大小写的二进制asc码就可以发现它们只在位5即第六个数位上有差别。程序就没有了,那个自己写写就当练手了,写多了就好了

21,459

社区成员

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

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