x86彙編 第二章 定址方式

2021-10-04 22:36:52 字數 909 閱讀 8227

暫存器定址

暫存器間接定址

變址定址

基址加變址定址

立即定址

直接定址

定址相關的問題

示例:inc ax

運算元存放在cpu暫存器內,暫存器的名字就是它的位址,直接操作對應的暫存器

示例:mov ax, [si]

運算元存放在記憶體中,需要通過暫存器的值(該值就是運算元的偏移位址ea)間接找到運算元

運算元的段:如果暫存器選用esp、sp、bp,則預設在堆疊段ss,否則一律預設在資料段ds

示例:mov al, 5[ebx]

運算元存放在記憶體中,需要根據暫存器的值、比例因子、位移量,計算出運算元的偏移位址ea,然後去所在段找到運算元,注意選用esp時,比例因子f只能為1

示例:mov ax, 8[bx][si]

運算元在記憶體中,先計算ea,再在段中找到運算元

運算元的段:

示例:add eax, -1

運算元是乙個有符號數,且只能是源運算元(io暫存器除外)

示例:mov ds:[20h], cl

運算元在記憶體中,指明運算元的段(部分情況下可省略),後面緊跟偏移位址ea,ea是乙個無符號數

需要注意,運算元型別一定要明確

一些指令顯示的指明運算元,有些則相反

根據運算元存放的位置,定址方式分為三類:

源運算元和目的運算元的存放位置

暫存器方式定址的運算元,其資料型別是不明確的,必要情況下,需要額外宣告

組合語言 80x86定址方式

1 立即定址方式 立即定址方式中指令的運算元是8位或16位立即數,並直接出現在指令中。例如 mov al,10h 源運算元為立即定址 執行後al 10h mov ax,0a48h 源運算元為立即定址 執行後ax 0a48h 立即定址只能用於源運算元,不能用於目的運算元。2 暫存器定址方式 暫存器定址...

80x86組合語言定址方式介紹

運算元直接包含在指令 中,可以是8或者16位。立即數作為指令的一部分,直接從biu指令佇列取出,因此速度更快。唯一缺點 只能作為源運算元。指令中所需的運算元在cpu某個暫存器中,可以是8位 16位段暫存器,這個操作完全在cpu內部,因此執行也很快。以下指令需要cpu以外的東西參與用符號或者常數表示 ...

彙編學習 第二章

書上的內容 頁數 雖然比第一章多,但是如果第一章理解完全後,第二章其實就是對第一章部分內容的深入操作。這一篇主要就把一些操作總結一下。第二章主要就是從8086cpu的角度,去看一下,cpu如何玩弄記憶體 暫存器就是這一章的主角,cpu和記憶體互動時,需要臨時儲存各種資料或者指令 都是1和0 這些資料...