《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 計算機系統(tǒng)原理(十六) 算數與邏輯運算指令詳解

計算機系統(tǒng)原理(十六) 算數與邏輯運算指令詳解

2017-06-22
關鍵詞: 匯編語言

引言

上一章我們已經著重討論了數據傳送(或者說復制)指令,相信各位猿友現在都已經對此有一些了解了。說真的,LZ在看第三章的過程中,不斷的被匯編的魅力深深的震撼,這些看似簡單的匯編指令,卻可以將復雜的程序井然有序的執(zhí)行完畢,實在是讓人驚嘆。時至今日,這本看似枯燥無比卻實則魅力十足的書,已經深深的將LZ吸引了。

希望各位猿友也有這樣的感覺,這是一種非常好的感覺,接下來,各位就一起和LZ來認識認識新的指令吧。

算術與邏輯運算指令

算術與邏輯運算包括很多種,估計各位猿友也能很快的想出來,比如最常見的加減乘除、與或非、左移右移等等。這里可能還有一個各位猿友不太容易想到的,就是取地址運算符,不過這個運算指令卻是LZ看過這一部分之后,覺得最精妙的一個指令。

這里面比較特別的指令就是leal(取地址指令),其余的指令都是比較常規(guī)的算術和邏輯運算,相比之下還比較好理解,因此LZ這里重點介紹leal指令,對于其余的指令LZ不會一一介紹,接下來我們就認識一下這個特別的leal指令吧。

leal指令

leal指令是非常神奇的一個指令,它可以取一個存儲器操作數的地址,并且將其賦給目的操作數。如果用C語言當中來對應的話,它就相當于&運算。

比如對于leal 4(%edx,%edx,4),%eax這條指令來講,我們假設%edx寄存器的值為x的話,那么這條指令的作用就是將 4 + x + 4x = 5x + 4賦給%eax寄存器。它和mov指令的區(qū)別就在于,假設是movl 4(%edx,%edx,4),%eax這個指令,它的作用是將內存地址為5x+4的內存區(qū)域的值賦給%eax寄存器,而leal指令只是將5x+4這個地址賦給目的操作數%eax而已,它并不對存儲器進行引用的值的計算。


本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。