Ch2 80x86暫存器用途及codeview介紹
16bit暫存器
暫存器用途:
} 一般通用暫存器
} AX – 用於存放算數的結果(Accumulator)
} BX – 基底暫存器,儲存記憶體位址,常使用BX做基底定址法
} CX – 迴圈的計數器(Counter)
} DX – 資料暫存器,被使用於乘法與除法或是I/O操作
} 每個暫存器可以分開成8位元使用,如AX可以分成AH暫存器AL暫存器
} 四個暫存器都有特定的名稱,代表一個特定的功能如果沒有做此特定的功能,則四個都可以通用
再來就是區段暫存器:
} 區段暫存器
} CS – 存放程式的區段位址
} DS – 存放資料段的起始位址
} SS – 存放堆疊段的起始位址
} ES – 用於輔助DS的不足
} 指標索引暫存器
} SP - 記錄堆疊(stack)的Top用的(Stack Pointer)
} BP - 另一個給stack記錄用的暫存器(stack)
} SI - 來源索引暫存器,可做為字串搬移的來源位址
} DI -目的索引暫存器,可做為字串搬移的目的位址
} IP - 指令指標暫存器,IP值必須與CS程式段合起來使用
大致上看一下就行了
還有一個旗標暫存器FL,大家可以藉由暫存器的變化來判斷狀態
Example:
零值旗號(Zero Flag, ZF)
指令運算結果為0 ZF=1
指令運算結果不為0 ZF=0
程式起手式:
CodeView
註:test是你可以隨便設的檔名
執行完可按file→exit離開codeview 視窗
●按F10可做單步執行,去觀察每一行程式記憶體及暫存器目前狀態。
●ALT+R→Restart:重新執行程式。
●按F4可觀看目前程式的螢幕顯像控制。