青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

唐吉訶德

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  5 Posts :: 75 Stories :: 3 Comments :: 0 Trackbacks

常用鏈接

留言簿(2)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

匯編中的寄存器說明
匯編語言和CPU以及內存,端口等硬件知識是連在一起的. 這也是為什么匯編語言沒有通用性的原因. 下面簡單講講基本知識(針對INTEL x86及其兼容機) ============================
x86匯編語言的指令,其操作對象是CPU上的寄存器,系統內存,或者立即數. 有些指令表面上沒有操作數, 或者看上去缺少操作數, 其實該指令有內定的操作對象, 比如push指令, 一定是對SS:ESP指定的內存操作, 而cdq的操作對象一定是eax / edx. 在匯編語言中,寄存器用名字來訪問.
CPU 寄存器有好幾類, 分別有不同的用處:
   1. 通用寄存器: EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP(這個雖然通用,但很少被用做除了堆棧指針外的用途) 這些32位可以被用作多種用途,但每一個都有"專長".
   EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器.
   EBX 是"基地址"(base)寄存器, 在內存尋址時存放基地址.
   ECX 是計數器(counter), 是重復(REP)前綴指令和LOOP指令的內定計數器.
   EDX是...(忘了..哈哈)但它總是被用來放整數除法產生的余數. 這4個寄存器的低16位可以被單獨訪問,分別用AX,BX,CX和DX. AX又可以單獨訪問低8位(AL)和高8位(AH), BX,CX,DX也類似. 函數的返回值經常被放在EAX中.
   ESI/EDI分別叫做"源/目標索引寄存器"(source/destination index),因為在很多字符串操作指令中,
   DS:ESI指向源串,而ES:EDI指向目標串. EBP是"基址指針"(BASE POINTER), 它最經常被用作高級語言函數調用的"框架指針"(frame pointer). 在破解的時候,經常可以看見一個標準的函數起始代碼: push ebp ;保存當前ebp mov ebp,esp ;EBP設為當前堆棧指針 sub esp, xxx ;預留xxx字節給函數臨時變量. ... 這樣一來,EBP 構成了該函數的一個框架, 在EBP上方分別是原來的EBP, 返回地址和參數. EBP下方則是臨時變量. 函數返回時作 mov esp,ebp/pop ebp/ret 即可. ESP 專門用作堆棧指針.
2. 段寄存器: CS(Code Segment,代碼段) 指定當前執行的代碼段
EIP (Instruction pointer, 指令指針)則指向該段中一個具體的指令. CS:EIP指向哪個指令, CPU 就執行它. 一般只能用jmp, ret, jnz, call 等指令來改變程序流程,而不能直接對它們賦值. DS(DATA SEGMENT, 數據段) 指定一個數據段. 注意:在當前的計算機系統中, 代碼和數據沒有本質差別, 都是一串二進制數, 區別只在于你如何用它. 例如, CS 制定的段總是被用作代碼, 一般不能通過CS指定的地址去修改該段. 然而,你可以為同一個段申請一個數據段描述符"別名"而通過DS來訪問/修改. 自修改代碼的程序常如此做. ES,FS,GS 是輔助的段寄存器, 指定附加的數據段. SS(STACK SEGMENT)指定當前堆棧段. ESP 則指出該段中當前的堆棧頂. 所有push/pop 系列指令都只對SS:ESP指出的地址進行操作.
 3. 標志寄存器(EFLAGS): 該寄存器有32位,組合了各個系統標志.
 EFLAGS一般不作為整體訪問, 而只對單一的標志位感興趣. 常用的標志有: 進位標志C(CARRY), 在加法產生進位或減法有借位時置1, 否則為0. 零標志Z(ZERO), 若運算結果為0則置1, 否則為0 符號位S(SIGN), 若運算結果的最高位置1, 則該位也置1. 溢出標志O(OVERFLOW), 若(帶符號)運算結果超出可表示范圍, 則置1. JXX 系列指令就是根據這些標志來決定是否要跳轉, 從而實現條件分枝. 要注意,很多JXX 指令是等價的, 對應相同的機器碼. 例如, JE 和JZ 是一樣的,都是當Z=1是跳轉. 只有JMP 是無條件跳轉. JXX 指令分為兩組, 分別用于無符號操作和帶符號操作. JXX 后面的"XX" 有如下字母: 無符號操作: 帶符號操作: A = "ABOVE", 表示"高于" G = "GREATER", 表示"大于" B = "BELOW", 表示"低于" L = "LESS", 表示"小于" C = "CARRY", 表示"進位"或"借位" O = "OVERFLOW", 表示"溢出" S = "SIGN", 表示"負" 通用符號: E = "EQUAL" 表示"等于", 等價于Z (ZERO) N = "NOT" 表示"非", 即標志沒有置位. 如JNZ "如果Z沒有置位則跳轉" Z = "ZERO", 與E同. 如果仔細想一想,就會發現 JA = JNBE, JAE = JNB, JBE = JNA, JG = JNLE, JGE= JNL, JL= JNGE, ....
4. 端口 端口是直接和外部設備通訊的地方。
外設接入系統后,系統就會把外設的數據接口映射到特定的端口地址空間,這樣,從該端口讀入數據就是從外設讀入數據,而向外設寫入數據就是向端口寫入數據。當然這一切都必須遵循外設的工作方式。端口的地址空間與內存地址空間無關,系統總共提供對64K個8位端口的訪問,編號0-65535. 相鄰的8位端口可以組成成一個16位端口,相鄰的16位端口可以組成一個32位端口。端口輸入輸出由指令IN,OUT,INS和OUTS實現,具體可參考匯編語言書籍


 

posted on 2010-06-29 10:24 心羽 閱讀(527) 評論(0)  編輯 收藏 引用 所屬分類: assembly/disassembly
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一级理论片| 久久久精品免费视频| 久久蜜桃av一区精品变态类天堂| 欧美精品国产一区| 亚洲国产婷婷香蕉久久久久久| 亚洲欧美福利一区二区| 亚洲欧美成人在线| 激情综合五月天| 久久只有精品| 亚洲免费精彩视频| 欧美一区2区三区4区公司二百| 国产日产欧美一区| 欧美成年视频| 亚洲欧美日韩一区| 最近中文字幕日韩精品| 亚洲一区在线直播| 国产在线不卡视频| 裸体女人亚洲精品一区| 性娇小13――14欧美| 欧美电影在线观看完整版| 日韩视频永久免费观看| 欧美在线黄色| 亚洲国产婷婷香蕉久久久久久99| 亚洲高清久久久| 欧美专区日韩专区| 中文在线不卡视频| 影音先锋在线一区| 国产精品女主播| 久久一区二区三区超碰国产精品| 亚洲一区二区三区777| 免费美女久久99| 欧美在线免费观看视频| 久久精品一区蜜桃臀影院| 久久久久久免费| 亚洲黄色影院| 久久gogo国模裸体人体| 欧美国产日本韩| 久久午夜视频| 国产精品v欧美精品v日韩精品| 久久疯狂做爰流白浆xx| 欧美.日韩.国产.一区.二区| 小辣椒精品导航| 最近中文字幕日韩精品| 国产视频一区二区三区在线观看| 欧美性理论片在线观看片免费| 国内精品久久久久久| 久久久久成人精品免费播放动漫| 欧美在线观看你懂的| 欧美国产日产韩国视频| 国产欧美一区二区白浆黑人| 9久re热视频在线精品| 一区二区三区在线免费视频| 亚洲网站在线播放| 亚洲欧洲一区二区三区久久| 欧美一区二区大片| 宅男噜噜噜66一区二区66| 欧美激情一区在线观看| 免费一区二区三区| 亚洲愉拍自拍另类高清精品| 欧美精品一区二区三区很污很色的 | 国产亚洲一级| 国内精品久久久久影院色| 一区二区三区久久网| 制服丝袜激情欧洲亚洲| 欧美成人小视频| 久久国内精品视频| 国产又爽又黄的激情精品视频 | 久久网站免费| 黄色成人av在线| 亚洲精品欧美激情| 亚洲精品乱码久久久久久日本蜜臀 | 久久久久久电影| 亚洲欧美亚洲| 国产一区av在线| 久久人人爽国产| 久久亚洲精品欧美| 亚洲国产精品v| 一区二区三区视频在线播放| 亚洲人体一区| 欧美亚洲网站| 国产亚洲欧洲997久久综合| 欧美一区二区三区视频在线| 亚洲综合色丁香婷婷六月图片| 国产精品成人aaaaa网站| 欧美日韩国产一区| 午夜欧美理论片| 国产伦精品免费视频| 极品少妇一区二区三区| 久久婷婷麻豆| 亚洲视频精选在线| 国产精品自拍在线| 久久综合久久久| 欧美精品二区| 午夜精品视频在线| 久久狠狠亚洲综合| 亚洲人体大胆视频| 亚洲一区二区三区四区五区午夜| 国产伦精品一区二区三区高清版 | 免费人成精品欧美精品| 欧美jjzz| 亚洲一区二区网站| 欧美一区二区三区免费在线看| 在线精品观看| 久久米奇亚洲| 欧美日韩成人免费| 久久精品亚洲国产奇米99| 亚洲美女毛片| 裸体一区二区| 亚洲欧美久久| 老牛国产精品一区的观看方式| 日韩午夜在线观看视频| 午夜综合激情| 在线综合亚洲欧美在线视频| 欧美自拍偷拍午夜视频| av成人黄色| 久久久久久免费| 国内成+人亚洲| 亚洲日本一区二区| 狠狠色综合色综合网络| 一本色道**综合亚洲精品蜜桃冫 | 亚洲精品日韩在线观看| 国产精品影片在线观看| 亚洲欧洲精品一区二区三区波多野1战4 | 国产精品免费一区豆花| 亚洲福利小视频| 国产中文一区| 亚洲性视频h| 国产精品第13页| 欧美成人午夜激情视频| 国产一区二区视频在线观看 | 久久人人97超碰国产公开结果| 一区二区三区欧美在线观看| 狼人天天伊人久久| 久久久一二三| 国产日韩精品一区观看 | 亚洲女优在线| 欧美欧美全黄| 久久精品国产一区二区电影| 久久免费黄色| 久久精品国内一区二区三区| 国产精品二区在线| 99国内精品| 国产精品成人一区二区三区吃奶| 欧美电影免费观看高清完整版| 国产日韩在线看片| 午夜电影亚洲| 久久九九热免费视频| 国产女主播视频一区二区| 夜夜嗨av一区二区三区免费区| 亚洲另类视频| 欧美精品 国产精品| 亚洲精品欧洲精品| 宅男噜噜噜66一区二区66| 欧美精品一区二区三区在线播放| 最新高清无码专区| 一区二区三区产品免费精品久久75 | 欧美午夜在线| 亚洲视频免费| 久久亚洲国产成人| 亚洲国产高清一区| 农村妇女精品| 亚洲毛片在线免费观看| 午夜一区不卡| 国产中文一区二区三区| 久久久亚洲欧洲日产国码αv| 欧美激情a∨在线视频播放| 亚洲毛片一区| 国产精品日韩高清| 欧美风情在线观看| 日韩视频在线一区| 欧美视频在线观看| 免费视频最近日韩| 亚洲精品一区在线观看| 欧美日本中文字幕| 在线性视频日韩欧美| 先锋影音一区二区三区| 一区在线影院| 欧美激情一区二区三区高清视频| 亚洲视频精品在线| 欧美高清在线观看| 亚洲欧美自拍偷拍| 亚洲国产欧美不卡在线观看| 亚洲视频在线观看视频| 久久久久国产一区二区三区| 亚洲毛片视频| 国内精品免费午夜毛片| 欧美激情一二三区| 欧美综合77777色婷婷| 一区二区国产精品| 欧美激情欧美激情在线五月| 欧美亚洲在线视频| 99成人在线| 在线观看欧美视频| 国产美女精品| 欧美日韩一区二区视频在线 | 午夜视频在线观看一区| 亚洲黄色一区二区三区| 久久天天狠狠| 亚洲在线免费观看| 亚洲精品视频在线看|