yuyuhongss 发表于 2011-2-9 18:54:32

擂台挑战赛进行时【III】

整蛊专家


境况是这样的:

你是个报复心很强的小子,你想方设法向害你公司的黄总,因为他曾对你不恭。

任务:写一个程序,整一下他。

要求:让他键盘上的CapsLock键(大小写转换键)失效!即:无论他是否按下了CapsLock键,无论他在大写状态或是小写状态输入英文字母,屏幕上都出现小写字母!

提示:不需要进行底层方面的硬件操作

夏季 发表于 2011-2-9 18:54:33

写了一个,大家看看:Passume cs:codesg

codesg segment

start:   mov ax, 0B800H            ;显存位置
               mov es, ax
               xor di, di                ;设置第零行第零个位置
               
main:    mov ah, 08H
               int 21H
               
               cmp al, 65                ;char(65)='A'
               jb nc
               cmp al, 90                ;char(90)='Z'
               ja nc
               or al, 00100000B          ;大写强制转换为小写

nc:               mov es:, al
               mov byte ptr es:,7;设置黑底白字
               add di, 2
               
               jmp short main            ;死循环
               
         mov ax, 4C00H
         int 21H

codesg ends

end start

yuyuhongss 发表于 2011-2-9 18:55:20

本帖最后由 yuyuhongss 于 2011-2-10 14:24 编辑

补充:21号中断提供基本输入功能,例:

mov ah,08h

int 21h

这两行代码的功能是让用户输入一个键(键盘上的键才行,遥控器上的不行),以ASCII码形式保存在al中。

参考代码:

**** Hidden Message *****

junqing124 发表于 2011-2-10 10:28:45

关注

china0008 发表于 2011-2-10 11:37:16

学习进度11章,尚无法解此题。等我学完再来收拾你。

yuyuhongss 发表于 2011-2-10 11:40:19

回复 4# china0008


    {:3_62:}嘻嘻...

china0008 发表于 2011-2-10 19:39:32

回复 5# yuyuhongss


    :lol

仰望天上的光 发表于 2011-2-13 16:22:19

为什么这个问题只有10个金币了?前面2个问题都是10个金币

七仔 发表于 2011-2-13 23:03:25

还没学到后面 学完了 来玩玩!

junglehb 发表于 2011-2-14 16:54:39

饿 看不懂....

小逸 发表于 2011-2-19 21:49:22

再出来出题,系统给你格式化掉!{:3_62:}

yuyuhongss 发表于 2011-2-19 21:58:29

回复 10# 小逸


    哦

jueqingsizhe66 发表于 2011-3-7 11:45:21

看看踩踩 还有点不明白

jueqingsizhe66 发表于 2011-3-7 11:47:48

恩挺简单的

zcmxhl 发表于 2011-3-8 11:19:49

还没学习完汇编.......不明白

復襍 发表于 2013-9-19 11:09:01

随便看看,收藏丶东西,这是很好的习惯。

鱼A 发表于 2013-9-22 12:48:19

屏蔽CL键么

ilboyvm 发表于 2014-10-22 20:57:42


先看看你的代码

克里斯 发表于 2014-11-20 20:58:31

真厉害,我要好好学习

e马先森 发表于 2017-2-16 13:04:53

围观大神们!!!
页: [1] 2
查看完整版本: 擂台挑战赛进行时【III】