亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? keyboard.s

?? linux下的源代碼
?? S
?? 第 1 頁 / 共 2 頁
字號:
alt_map:.byte 0,0.ascii "\0@\0$\0\0{[]}\\\0".byte 0,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte '~,13,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte 0,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte 0,0,0,0 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte 0,0,0,0,0 /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '|.fill 10,1,0#elif defined(KBD_US)// 以下是美式鍵盤的掃描碼映射表。key_map:.byte 0,27.ascii "1234567890-=".byte 127,9.ascii "qwertyuiop[]".byte 13,0.ascii "asdfghjkl;'".byte '`,0.ascii "\\zxcvbnm,./".byte 0,'*,0,32 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte '-,0,0,0,'+ /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '<.fill 10,1,0shift_map:.byte 0,27.ascii "!@#$%^&*()_+".byte 127,9.ascii "QWERTYUIOP{}".byte 13,0.ascii "ASDFGHJKL:\"".byte '~,0.ascii "|ZXCVBNM<>?".byte 0,'*,0,32 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte '-,0,0,0,'+ /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '>.fill 10,1,0alt_map:.byte 0,0.ascii "\0@\0$\0\0{[]}\\\0".byte 0,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte '~,13,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte 0,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte 0,0,0,0 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte 0,0,0,0,0 /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '|.fill 10,1,0#elif defined(KBD_GR)// 以下是德語鍵盤的掃描碼映射表。key_map:.byte 0,27.ascii "1234567890\\'".byte 127,9.ascii "qwertzuiop@+".byte 13,0.ascii "asdfghjkl[]^".byte 0,'#.ascii "yxcvbnm,.-".byte 0,'*,0,32 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte '-,0,0,0,'+ /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '<.fill 10,1,0shift_map:.byte 0,27.ascii "!\"#$%&/()=?`".byte 127,9.ascii "QWERTZUIOP\\*".byte 13,0.ascii "ASDFGHJKL{}~".byte 0,''.ascii "YXCVBNM;:_".byte 0,'*,0,32 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte '-,0,0,0,'+ /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '>.fill 10,1,0alt_map:.byte 0,0.ascii "\0@\0$\0\0{[]}\\\0".byte 0,0.byte '@,0,0,0,0,0,0,0,0,0,0.byte '~,13,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte 0,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte 0,0,0,0 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte 0,0,0,0,0 /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '|.fill 10,1,0#elif defined(KBD_FR)// 以下是法語鍵盤的掃描碼映射表。key_map:.byte 0,27.ascii "&{\"'(-}_/@)=".byte 127,9.ascii "azertyuiop^$".byte 13,0.ascii "qsdfghjklm|".byte '`,0,42 /* coin sup gauche, don't know, [*|mu] */.ascii "wxcvbn,;:!".byte 0,'*,0,32 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte '-,0,0,0,'+ /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '<.fill 10,1,0shift_map:.byte 0,27.ascii "1234567890]+".byte 127,9.ascii "AZERTYUIOP<>".byte 13,0.ascii "QSDFGHJKLM%".byte '~,0,'#.ascii "WXCVBN?./\\".byte 0,'*,0,32 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte '-,0,0,0,'+ /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '>.fill 10,1,0alt_map:.byte 0,0.ascii "\0~#{[|`\\^@]}".byte 0,0.byte '@,0,0,0,0,0,0,0,0,0,0.byte '~,13,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte 0,0.byte 0,0,0,0,0,0,0,0,0,0,0.byte 0,0,0,0 /* 36-39 */.fill 16,1,0 /* 3A-49 */.byte 0,0,0,0,0 /* 4A-4E */.byte 0,0,0,0,0,0,0 /* 4F-55 */.byte '|.fill 10,1,0#else#error "KBD-type not defined"#endif/** do_self handles "normal" keys, ie keys that don't change meaning* and which have just one character returns.*//** do_self 用于處理“普通”鍵,也即含義沒有變化并且只有一個字符返回的鍵。*/do_self:// 454-460 行用于根據模式標志mode 選擇alt_map、shift_map 或key_map 映射表之一。lea alt_map,%ebx // alt 鍵同時按下時的映射表基址alt_map??ebx。testb $0x20,mode /* alt-gr */ /* 右alt 鍵同時按下了? */jne 1f // 是,則向前跳轉到標號1 處。lea shift_map,%ebx // shift 鍵同時按下時的映射表基址shift_map??ebx。testb $0x03,mode // 有shift 鍵同時按下了嗎?jne 1f // 有,則向前跳轉到標號1 處。lea key_map,%ebx // 否則使用普通映射表key_map。// 取映射表中對應掃描碼的ASCII 字符,若沒有對應字符,則返回(轉none)。1: movb (%ebx,%eax),%al // 將掃描碼作為索引值,取對應的ASCII 碼??al。orb %al,%al // 檢測看是否有對應的ASCII 碼。je none // 若沒有(對應的ASCII 碼=0),則返回。// 若ctrl 鍵已按下或caps 鍵鎖定,并且字符在'a'-'}'(0x61-0x7D)范圍內,則將其轉成大寫字符// (0x41-0x5D)。testb $0x4c,mode /* ctrl or caps */ /* 控制鍵已按下或caps 亮?*/je 2f // 沒有,則向前跳轉標號2 處。cmpb $'a,%al // 將al 中的字符與'a'比較。jb 2f // 若al 值<'a',則轉標號2 處。cmpb $'},%al // 將al 中的字符與'}'比較。ja 2f // 若al 值>'}',則轉標號2 處。subb $32,%al // 將al 轉換為大寫字符(減0x20)。// 若ctrl 鍵已按下,并且字符在'`'--'_'(0x40-0x5F)之間(是大寫字符),則將其轉換為控制字符// (0x00-0x1F)。2: testb $0x0c,mode /* ctrl */ /* ctrl 鍵同時按下了嗎?*/je 3f // 若沒有則轉標號3。cmpb $64,%al // 將al 與'@'(64)字符比較(即判斷字符所屬范圍)。jb 3f // 若值<'@',則轉標號3。cmpb $64+32,%al // 將al 與'`'(96)字符比較(即判斷字符所屬范圍)。jae 3f // 若值>='`',則轉標號3。subb $64,%al // 否則al 值減0x40,// 即將字符轉換為0x00-0x1f 之間的控制字符。// 若左alt 鍵同時按下,則將字符的位7 置位。3: testb $0x10,mode /* left alt */ /* 左alt 鍵同時按下?*/je 4f // 沒有,則轉標號4。orb $0x80,%al // 字符的位7 置位。// 將al 中的字符放入讀緩沖隊列中。4: andl $0xff,%eax // 清eax 的高字和ah。xorl %ebx,%ebx // 清ebx。call put_queue // 將字符放入緩沖隊列中。none: ret/** minus has a routine of it's own, as a 'E0h' before* the scan code for minus means that the numeric keypad* slash was pushed.*//** 減號有它自己的處理子程序,因為在減號掃描碼之前的0xe0* 意味著按下了數字小鍵盤上的斜杠鍵。*/minus: cmpb $1,e0 // e0 標志置位了嗎?jne do_self // 沒有,則調用do_self 對減號符進行普通處理。movl $'/,%eax // 否則用'/'替換減號'-'??al。xorl %ebx,%ebxjmp put_queue // 并將字符放入緩沖隊列中。/** This table decides which routine to call when a scan-code has been* gotten. Most routines just call do_self, or none, depending if* they are make or break.*//* 下面是一張子程序地址跳轉表。當取得掃描碼后就根據此表調用相應的掃描碼處理子程序。* 大多數調用的子程序是do_self,或者是none,這起決于是按鍵(make)還是釋放鍵(break)。*/key_table:.long none,do_self,do_self,do_self /* 00-03 s0 esc 1 2 */.long do_self,do_self,do_self,do_self /* 04-07 3 4 5 6 */.long do_self,do_self,do_self,do_self /* 08-0B 7 8 9 0 */.long do_self,do_self,do_self,do_self /* 0C-0F + ' bs tab */.long do_self,do_self,do_self,do_self /* 10-13 q w e r */.long do_self,do_self,do_self,do_self /* 14-17 t y u i */.long do_self,do_self,do_self,do_self /* 18-1B o p } ^ */.long do_self,ctrl,do_self,do_self /* 1C-1F enter ctrl a s */.long do_self,do_self,do_self,do_self /* 20-23 d f g h */.long do_self,do_self,do_self,do_self /* 24-27 j k l | */.long do_self,do_self,lshift,do_self /* 28-2B { para lshift , */.long do_self,do_self,do_self,do_self /* 2C-2F z x c v */.long do_self,do_self,do_self,do_self /* 30-33 b n m , */.long do_self,minus,rshift,do_self /* 34-37 . - rshift * */.long alt,do_self,caps,func /* 38-3B alt sp caps f1 */.long func,func,func,func /* 3C-3F f2 f3 f4 f5 */.long func,func,func,func /* 40-43 f6 f7 f8 f9 */.long func,num,scroll,cursor /* 44-47 f10 num scr home */.long cursor,cursor,do_self,cursor /* 48-4B up pgup - left */.long cursor,cursor,do_self,cursor /* 4C-4F n5 right + end */.long cursor,cursor,cursor,cursor /* 50-53 dn pgdn ins del */.long none,none,do_self,func /* 54-57 sysreq ? < f11 */.long func,none,none,none /* 58-5B f12 ? ? ? */.long none,none,none,none /* 5C-5F ? ? ? ? */.long none,none,none,none /* 60-63 ? ? ? ? */.long none,none,none,none /* 64-67 ? ? ? ? */.long none,none,none,none /* 68-6B ? ? ? ? */.long none,none,none,none /* 6C-6F ? ? ? ? */.long none,none,none,none /* 70-73 ? ? ? ? */.long none,none,none,none /* 74-77 ? ? ? ? */.long none,none,none,none /* 78-7B ? ? ? ? */.long none,none,none,none /* 7C-7F ? ? ? ? */.long none,none,none,none /* 80-83 ? br br br */.long none,none,none,none /* 84-87 br br br br */.long none,none,none,none /* 88-8B br br br br */.long none,none,none,none /* 8C-8F br br br br */.long none,none,none,none /* 90-93 br br br br */.long none,none,none,none /* 94-97 br br br br */.long none,none,none,none /* 98-9B br br br br */.long none,unctrl,none,none /* 9C-9F br unctrl br br */.long none,none,none,none /* A0-A3 br br br br */.long none,none,none,none /* A4-A7 br br br br */.long none,none,unlshift,none /* A8-AB br br unlshift br */.long none,none,none,none /* AC-AF br br br br */.long none,none,none,none /* B0-B3 br br br br */.long none,none,unrshift,none /* B4-B7 br br unrshift br */.long unalt,none,uncaps,none /* B8-BB unalt br uncaps br */.long none,none,none,none /* BC-BF br br br br */.long none,none,none,none /* C0-C3 br br br br */.long none,none,none,none /* C4-C7 br br br br */.long none,none,none,none /* C8-CB br br br br */.long none,none,none,none /* CC-CF br br br br */.long none,none,none,none /* D0-D3 br br br br */.long none,none,none,none /* D4-D7 br br br br */.long none,none,none,none /* D8-DB br ? ? ? */.long none,none,none,none /* DC-DF ? ? ? ? */.long none,none,none,none /* E0-E3 e0 e1 ? ? */.long none,none,none,none /* E4-E7 ? ? ? ? */.long none,none,none,none /* E8-EB ? ? ? ? */.long none,none,none,none /* EC-EF ? ? ? ? */.long none,none,none,none /* F0-F3 ? ? ? ? */.long none,none,none,none /* F4-F7 ? ? ? ? */.long none,none,none,none /* F8-FB ? ? ? ? */.long none,none,none,none /* FC-FF ? ? ? ? *//** kb_wait waits for the keyboard controller buffer to empty.* there is no timeout - if the buffer doesn't empty, we hang.*//** 子程序kb_wait 用于等待鍵盤控制器緩沖空。不存在超時處理 - 如果* 緩沖永遠不空的話,程序就會永遠等待(死掉)。*/kb_wait:pushl %eax1: inb $0x64,%al // 讀鍵盤控制器狀態。testb $0x02,%al // 測試輸入緩沖器是否為空(等于0)。jne 1b // 若不空,則跳轉循環等待。popl %eaxret/** This routine reboots the machine by asking the keyboard* controller to pulse the reset-line low.*//** 該子程序通過設置鍵盤控制器,向復位線輸出負脈沖,使系統復位重啟(reboot)。*/reboot:call kb_wait // 首先等待鍵盤控制器輸入緩沖器空。movw $0x1234,0x472 /* don't do memory check */movb $0xfc,%al /* pulse reset and A20 low */outb %al,$0x64 // 向系統復位和A20 線輸出負脈沖。die: jmp die // 死機。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品电影在线| 久久亚洲捆绑美女| 日韩美女在线视频| 国产精品色哟哟网站| 日本aⅴ免费视频一区二区三区| 国产精品一二三四| 欧美羞羞免费网站| 久久综合五月天婷婷伊人| 国产精品福利一区| 精品无码三级在线观看视频| 91国偷自产一区二区开放时间| 久久综合久色欧美综合狠狠| 亚洲一区二区三区自拍| 成人黄动漫网站免费app| 欧美性猛交xxxx乱大交退制版| 国产日韩成人精品| 日本不卡一区二区三区高清视频| 99精品一区二区三区| 欧美一区二区三区婷婷月色| 成人免费在线观看入口| 国产一区二区在线视频| 欧美三级电影在线看| 国产欧美日本一区二区三区| 亚洲国产精品自拍| 在线一区二区三区四区五区| 久久影院视频免费| 国产一区福利在线| 日韩欧美中文字幕一区| 国产一区视频在线看| 国产精品久久看| 国产精品综合在线视频| 一区二区在线观看不卡| 欧美国产日韩a欧美在线观看| 洋洋av久久久久久久一区| 色婷婷综合视频在线观看| 亚洲va中文字幕| 美美哒免费高清在线观看视频一区二区 | 欧美一级日韩不卡播放免费| 欧美日韩国产在线观看| 国产精品伊人色| 国产精品全国免费观看高清 | 婷婷开心激情综合| 久久一留热品黄| 欧美精品三级日韩久久| 91黄视频在线观看| 中文字幕乱码久久午夜不卡| 国产精品久久久久久久岛一牛影视| 2020国产精品自拍| 国产亚洲欧美在线| 亚洲午夜av在线| 亚洲资源中文字幕| 婷婷开心激情综合| 粉嫩蜜臀av国产精品网站| 91精品国产乱| 欧美日韩视频不卡| 欧美精品一区二区久久婷婷| 日韩精品在线一区二区| 91精品久久久久久久99蜜桃| 欧美性极品少妇| 成人中文字幕在线| 国产福利精品一区二区| 日本vs亚洲vs韩国一区三区二区| 欧美国产一区二区在线观看| 精品99999| 成人免费一区二区三区视频| 欧美视频在线不卡| 日韩欧美国产综合一区| 亚洲情趣在线观看| 日韩国产高清影视| 欧美无人高清视频在线观看| 在线播放91灌醉迷j高跟美女 | 日韩中文字幕不卡| 午夜伊人狠狠久久| 精品国内片67194| 成人丝袜高跟foot| 亚洲自拍偷拍麻豆| 欧美一区二区在线看| 蜜桃av噜噜一区| 国产女人aaa级久久久级| 欧美伊人久久大香线蕉综合69 | 国产九色sp调教91| 一区二区三区欧美日| 欧美日韩国产一区二区三区地区| 奇米色一区二区三区四区| 亚洲国产精品精华液ab| 欧美日韩一卡二卡三卡| 美女精品自拍一二三四| 一区二区三区免费网站| 日韩亚洲欧美中文三级| 成人国产免费视频| 日韩不卡一二三区| 国产精品视频九色porn| 91精品久久久久久久久99蜜臂| 韩国成人精品a∨在线观看| 最新国产精品久久精品| 日韩一级片网址| 日本高清成人免费播放| 国产在线播放一区三区四| 丝袜美腿亚洲色图| 亚洲成人动漫一区| 亚洲精品大片www| 亚洲乱码国产乱码精品精小说| 国产欧美日韩激情| 中文字幕av免费专区久久| 日韩一区二区精品在线观看| 粉嫩欧美一区二区三区高清影视 | 精品区一区二区| 成人黄色综合网站| 国内精品久久久久影院色| 奇米色777欧美一区二区| 午夜久久电影网| 亚洲成人av一区二区| 亚洲超碰精品一区二区| 夜夜亚洲天天久久| 亚洲一区二区在线播放相泽| 亚洲日本va在线观看| 亚洲欧美一区二区三区久本道91| 中文字幕av在线一区二区三区| 国产亚洲一区二区三区四区| 日韩视频永久免费| 精品国产免费一区二区三区香蕉 | 日本不卡不码高清免费观看| 天堂av在线一区| 蜜桃精品在线观看| 国产在线精品免费av| 国产成人免费在线观看不卡| 国产精品系列在线播放| 国产·精品毛片| 91麻豆免费观看| 欧美日韩高清影院| 亚洲精品一区在线观看| 久久久久99精品一区| 亚洲国产精品精华液2区45| 亚洲日本韩国一区| 水野朝阳av一区二区三区| 久久精品国产999大香线蕉| 国产精品18久久久久久vr| www.性欧美| 欧美性做爰猛烈叫床潮| 欧美mv日韩mv国产网站app| 国产日韩欧美高清| 一区二区三区四区不卡视频 | 国产精品系列在线观看| 97久久超碰精品国产| 在线观看av一区二区| 91精选在线观看| 国产日产欧美一区二区视频| 亚洲黄色小说网站| 另类人妖一区二区av| 成人av午夜影院| 欧美高清精品3d| 国产精品女主播av| 丝袜亚洲另类欧美| 午夜精品福利久久久| 制服丝袜亚洲播放| 久久蜜臀中文字幕| 亚洲精品videosex极品| 欧美aⅴ一区二区三区视频| 国产夫妻精品视频| 欧美日韩免费高清一区色橹橹| 2020日本不卡一区二区视频| 中文字幕一区二区三区四区| 亚洲成a人v欧美综合天堂| 精品无人码麻豆乱码1区2区| 日本福利一区二区| 亚洲国产精品av| 日产欧产美韩系列久久99| 成人精品鲁一区一区二区| 欧美一区二区三区免费在线看| 国产精品美女一区二区| 麻豆一区二区三区| 欧美视频一区二区三区在线观看| 国产欧美一区二区精品婷婷 | 亚洲欧美电影院| 国产精品1区2区3区在线观看| 欧美日韩成人在线一区| 亚洲视频图片小说| 国产精品12区| 极品少妇xxxx精品少妇| 久久一区二区三区四区| 首页亚洲欧美制服丝腿| 91网页版在线| 中文字幕第一区第二区| 久久精品国产澳门| 91精品国产综合久久精品图片| 日韩毛片一二三区| 国产91高潮流白浆在线麻豆| 欧美三级欧美一级| 精品欧美黑人一区二区三区| 亚洲无人区一区| 色综合久久久久| 国产精品二区一区二区aⅴ污介绍| 国产一区二区在线观看视频| 日韩欧美美女一区二区三区| 婷婷久久综合九色综合绿巨人 | 日韩精品一区二区三区三区免费| 亚洲永久精品国产| 欧美日韩亚洲综合在线 | 国产成人精品亚洲日本在线桃色 | 久久综合色播五月|