2015年1月30日 星期五

Assembly 筆記 - Ch3 組合語言基礎

作者:alog
來源:http://ibf.tw/xqzCv
備註:如果作者不希望被轉帖到此處,請告知,小弟會馬上刪帖。
-------------------------------------------------------------------------------------

內建資料型態
型態使用
BYTE8-bit無號整數
SBYTE8-bit有號整數
WORD16-bit無號整數
SWORD16-bit有號整數
DWORD32-bit無號整數
SDWORD32-bit有號整數
FWORD48-bit整數
QWORD64-bit整數
TBYTE80-bit整數
REAL432-bit (4 byte) IEEE短實數
REAL864-bit (8 byte) IEEE長實數
REAL1080-bit (10 byte) IEEE延伸實數
less ...

● Intel處理器從記憶體存取資料使用稱為 little endian order的方式
    表示最小有意義的位元組資料存在最低的位址
   ex : DWORD 12345678h
          little endian order                              big endian order
          0000 : 78                                                 0000 : 12
          0001 : 56                                                 0001 : 34    
          0002 : 34                                                 0002 : 56
          0003 : 12                                                 0003 : 78

符號常數
     *等號指引 ( equal-sign directive ) 連結符號名稱到整數運算式         名稱 = 運算式
          COUNT = 500
          mov al,COUNT
          將在組譯器前置處理步驟變成
          mov al,500
 
      * 計算陣列及字串的大小           list BYTE 10,20,30,40
           LISTSIZE = ( $ - list )         ; $ : current location counter
           ; ListSize要緊跟在list之後
           myString BYTE  "This is a long string,containing"
                           BYTE "any number of characters"
           myString_len = ( $ - myString )
           list WORD 1000h,2000h,3000h,4000h
           ListSize = ( $ - list ) / 2

       * EQU指引 : 連結符號名稱、整數常數或任意文字
                 名稱  EQU  運算式                  =>  matrix1 EQU 10*10    
                 名稱  EQU  符號   
                  => 符號是既有的符號名稱,已使用 = 或 EQU定義過
                  名稱 EQU  <文字>
                   => PI   EQU   <3.1416>

沒有留言:

張貼留言