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即第六个数位上有差别。程序就没有了,那个自己写写就当练手了,写多了就好了
用C编写,然后反汇编,不知道这样的办法好不好。
21,459
社区成员
41,601
社区内容
加载中
试试用AI创作助手写篇文章吧