官术网_书友最值得收藏!

1.2.1 整數加減指令

x86匯編使用ADD指令進行整數的加法運算,該指令有兩個操作數,第1個操作數也叫作目的操作數,第2個操作數也叫作源操作數。ADD指令把兩個操作數的值相加,然后把結果存放到目的操作數中。源操作數可以是寄存器、內存或立即數,而目的操作數需要滿足可寫的條件,所以只能是寄存器或內存,而且兩個操作數不能同時為內存。

如下指令將EAX寄存器的值加上16,并把結果存回EAX中,指令如下:

整數減法運算通過SUB指令來完成,對操作數的要求和ADD指令一致,不過是從目的操作數中減去源操作數,并把結果存回目的操作數中。

如下指令將ESP寄存器的值減去32,并把結果存回ESP中,就像高級語言中分配函數棧幀時所做的那樣,指令如下:

包括ADD和SUB在內的很多匯編指令能夠接受不同大小的參數,例如通過兩個8位寄存器進行int8加法,指令如下:

通過兩個16位寄存器進行int16加法,指令如下:

x86是一個復雜指令集架構,很多指令像這樣支持多種操作數組合,雖然代碼中使用同一個opcode名稱,但是實際編譯后對應的是不同的opcode。上層語言中的數據類型會指導編譯器,在編譯階段選擇合適的opcode和對應的operand。

主站蜘蛛池模板: 呼伦贝尔市| 徐汇区| 惠水县| 海丰县| 石首市| 田林县| 张家界市| 乌兰浩特市| 繁昌县| 澳门| 澎湖县| 九龙城区| 宜宾市| 万荣县| 万源市| 东城区| 林州市| 延川县| 道真| 大庆市| 始兴县| 明水县| 车险| 即墨市| 甘洛县| 会泽县| 化隆| 游戏| 新绛县| 三河市| 彭阳县| 保德县| 贡山| 天水市| 元朗区| 商南县| 卢氏县| 资溪县| 孟津县| 灌云县| 青海省|