組合語言(五) 64位程式設計

2021-10-19 07:18:53 字數 596 閱讀 2363

amd 和 intel 64 位處理器的出現增加了對 64 位程式設計的興趣。masm 支援 64 位**,所有的 visual studio 2012 版本(最終版、高階版和專業版)以及桌面系統的 visual studio 2012 express 都會同步安裝 64 位版本的彙編器。 與32 位版本不同之處如下所示:

(1)2 位 addtwosum 程式中使用了下列三行**,而 64 位版本中則沒有:

.386

.model flat,stdcall

.stack 4096

(2) 64 位程式中,使用 proto 關鍵字的語句不帶引數:

exitprocess proto

32 位版本**如下:

exitprocess proto,dwexitcode:dword(3) 32 位版本則只使用了一條 invoke 語句實現同樣的功能。64 位 masm 不支援 invoke 偽指令。

(4)64 位模式中,loop 指令用 rcx 作為迴圈計數器。

64位組合語言簡介

現在已經是64位的時代了,x86 64 amd64 平台將是下一代計算機的體系結構,我們開發作業系統的當然要對x86 64的彙編有所了解。1.x86 64的暫存器 x86 64較x86 32多了8個通用暫存器,而且,每個通用暫存器都是64位寬,它們是 rax,rbx,rcx,rdx,rsi,rdi,...

組合語言程式設計

1.彙編語句的三種基本型別 2.標號相關 3.變數相關 4.運算元定址方式 buffer dw 500 x 17 rept 500 這是乙個重複巨集,以下重複彙編500遍 x x 979 mod 65535 這句話我也不懂 dw x endm 巨集在這裡結束transto10 proc near 函...

組合語言程式設計

乙個完整的源程式通常由若干邏輯段組成,包括資料段 附加段 堆疊段和 段。它們分別對映到儲存器中的物理段上。每個邏輯段以segment語句開始,以ends結束,整個源程式用end語句結尾。段中存放源程式的所有指令碼 資料 變數等則放在資料段和附加段中。程式中可以定義堆疊段,也可以直接利用系統中的堆疊段...