1. 程式人生 > >x64彙編第一講,Vs系列配置x64環境與x86環境

x64彙編第一講,Vs系列配置x64環境與x86環境

目錄

  • x64彙編環境配置
    • 一丶x64環境配置
      • 1.1 VS系列編譯器配置X64Asm開發環境.
    • 二丶Vs配置X86彙編環境.

x64彙編環境配置

一丶x64環境配置

現在windows系統都是64位了,那麼對應的彙編也就是說已經升級到64位了.
一直沒有時間寫部落格將64位彙編寫出來.所以現在細心整理一下.
首先我們先配置好開發環境,然後我們才能進行開發.

1.1 VS系列編譯器配置X64Asm開發環境.

1.1新建一個專案.專案裡面新增一個.asm字尾的檔案.

當然字尾.asm檔案沒有,所以我們隨便新增一個文字檔案.或者一個.cpp檔案.在新增的時候將字尾名改為.asm即可.

1.2 配置x86 /x64彙編環境

我們要生成一個應用程式,可以進行選擇是生成x86還是x64
現在彙編中也是一樣的.直接進行配置.

當然你也可以自定義一個解決方案,是專門編譯彙編的.
只需要你在 上方Debug哪裡新建一個解決方案即可.這個自己研究不在累贅,如果嫌麻煩自己只用用x64的即可.

1.3 設定asm屬性.

右鍵對.asm檔案 點選屬性,如下圖表示
從專案中排除選擇否, 然後專案型別改正自定義型別

1.4 asm屬性繼續設定

如果第三不應用之後則會出現如下顯示介面

此時在自定義生成工具裡面,點選常規. 裡面會出現很多內容.我們只關心
命令列跟輸出即可.

如下;

命令列: ml64 /Fo $(IntDir)%(fileName).obj /c %(fileName).asm

輸出: $(IntDir)%(fileName).obj;%(Outputs)

1.5設定程式入口點以及子系統

如果單純的編寫x64彙編.那麼你就需要設定了.
對解決方案右鍵點選屬性.找到連結->子系統

設定子系統位console控制檯

然後設定入口點.

你寫的x64彙編入口是哪個你就指定那個即可.

x64彙編程式碼


.DATA        ;定義資料段

IBinary DQ ?  ;自定義了一個常量為IBinary

.CODE         ;定義程式碼段

 

Fun PROC    ;定義函式
    ret
Fun ENDP

 

Main PROC
    
    sub rsp,20h
    xor r9,r9
    xor r8,r8
    xor rdx,rdx
    xor rcx,rcx
    call Fun
    add rsp,20h
    ret
Main ENDP

END

最後編譯執行即可.

x64dbg 下的內容

1.6配置生成依賴項

如果上方編譯不成功,則設定一下生成依賴項.

1.7 配置高亮外掛

當時配置高亮外掛是在Vs2019上面,點選擴充套件更新. 搜尋ASM會出現兩個
一個是 AsmHighlighter,另個好想是 AsmHxxxx
兩個安裝那個都可以.

二丶Vs配置X86彙編環境.

2.1.設定編譯環境為win32

首先我們要選擇編譯為win32程式.這個自己直接在配置管理器選擇即可.

2.2.設定附加依賴項.

附加依賴項在x64可設定可不設定,我沒有設定.

如下:

2.3.設定Asm檔案屬性.

右鍵對.asm檔案 點選屬性,如下圖表示
從專案中排除選擇否, 然後專案型別改正自定義型別


此時跟X64設定的不一樣了,我們選擇專案型別為 Microsoft Macro Assembler即可.

設定 use safe Excetion Handlers 設定為是即可.

此時就設定成功了.

x86彙編程式碼測試

INCLUDELIB kernel32.lib

.MODEL flat,stdcall

;.code
ExitProcess PROTO,              ; exit program
dwExitCode:DWORD        ; return code


.data
.code
Main PROC

    mov eax,10000h      ; EAX = 10000h
    add eax,40000h      ; EAX = 50000h
    sub eax,20000h      ; EAX = 30000h

    push 0h
    call ExitProcess

main ENDP
END Main

直接拷貝到自己工程即可.直接編譯即可.

此時你還需要 在解決方案屬性裡面的聯結器裡面 設定一下系統具體如下

解決方案 -> 聯結器 -> 系統 -> 子系統 : 設定為 console (控制檯)
解決方案 -> 聯結器 -> 高階 -> 入口點 : 設定為你彙編程式碼的入口點. 如我的就是 Main

x32Dbg程式碼截圖

相關推薦

x64彙編第一,Vs系列配置x64環境x86環境

目錄 x64彙編環境配置 一丶x64環境配置 1.1 VS系列編譯器配置X64Asm開發環境. 二丶Vs配置X86彙編環境. x64彙編環境配

MAC下使用VS Code安裝配置Java環境Maven環境

繼Sublime Text這種輕量級IDE火了以後,宇宙最強大的IDE開發團隊(Microsoft)推出了VS Code. 這對於使用MacBook這種低儲存筆記本的開發人員來說簡直是福音~! 所以針對如何在Mac上配置Spring+Maven,網上好像沒有類似的說明,這一節首先我們來配

VS Code配置多Python版本執行環境

正兒八經開始使用的第一個編輯器就是VS Code,所以基本沒怎麼用過Sublime,比較是無從談起,不過VS Code用起來真是順手啊。配置好的話,直接在VS Code裡面進行Python開發、除錯,完全不是問題。 不過使用Python難免需要用到多個Pyth

springboot 入門2 開發環境生產環境採用不同配置問題

目開發中我們通常有兩套配置資訊  分別配置了我們的資料來源資訊等? 那麼我們要如何不通過修改配置檔案大量配置來實現簡單的修改與配置來實現相關配置載入功能  首先springboot 有一個核心的配置檔案appication.yml配置檔案  通常我們的所有配置都是配置在當前一

13 Gradle 打包實現生產環境測試環境配置分離

Gradle 打包實現生產環境與測試環境配置分離 前篇是使用 Maven 進行的包管理,這次我們使用 Gradle 進行 Java Web Server 的包管理的配置。 配置 Gradle 配置檔案 build.gradle 中配置相關的 resources 配

vue+axios 開發環境生產環境配置請求介面,本地開發和線上開發有多個請求地址怎麼處理?上線後自動獲取ip,不需改請求地址可運用多個專案中

1. 配置本地開發環境介面: 進入到專案目錄config檔案中index.js ;當頁面有多個不同地址時此可以重定向,下圖中會出現報錯的就是路徑問題, 建立所有httpUrl介面請求。舉例後臺請求地址為:192.168.11.12:80/omc/login  ,第一個

第五章:VS中使用X64彙編

需要注意的是,在X86專案中,可以使用__asm{}來嵌入彙編程式碼,但是在X64專案中,再也不能使用__asm{}來編寫嵌入式彙編程式了,必須使用專門的.asm彙編檔案來編寫相應的彙編程式碼,然後在其它地方來呼叫這些彙編程式碼。 那麼,如何在VS中使用X64的彙編呢?

opencv2.49+vs 2012配置(編譯器x64,系統win7 64位)

網上關於opencv配置的相關資源有很多,本部落格主要從0開始介紹opencv2.49配置vs2012的情況,其中編譯器選擇x64,系統為win7 64位系統。 首先進入opencv官網https:

Docker系列:第一.Docker簡介安裝

安裝 -- docker-ce 資源 terminal 輸入 英文 docke 技術支持 什麽是 Docker? Docker的英文翻譯是“搬運工”的意思,他搬運的東西就是我們常說的集裝箱Container,Container 裏面裝的是任意類型的 App,我們的開發人員可

OpenCV3.42+VS2017配置+模組計算機型別“X86目標計算機型別“x64”衝突”的問題解決

目錄 OpenCV3.42+VS2017配置 下載  opencv-3.4.2-vc14_vc15.exe 解壓縮。 1.安裝:     雙擊開啟下載好的opencv-3.1.0.exe檔案,進行安裝(其實是解壓)    安裝完畢之後,在其安

第一 Kali的安裝基本配置

1.kali的下載Kali Linux前身是BackTrack(基於ubuntu),是一款基於Debian的Linux發行版。由於該系統預裝了數百款安全工具,被廣泛應用於數字取證及滲透測試等領域,受到了

XGBoost 入門系列第一

*本文旨在普及機器學習的使用,對於文章涉及到的模型策略不具有實盤參考意義,感興趣朋友可以前往BigQuant人工智慧量化投資平臺進一步學習。 Boosted Trees 介紹 XGBoost 是 “Extreme Gradient Boosting”的簡稱,其中“Gradient B

x64彙編 暫存器

1、暫存器 通用暫存器: 8位 al/ah cl/ch dl/dh bl/bh spl bpl sil dil r8b r9b r10b r11b r12b r

【Java mail 入門教程】第一 環境配置

本人一直在找相關的完整的java mail入門教程,可惜沒有較好和完整的,所以自學自編出一套完整的入門教程,我不敢說自己寫得很好,很完善,畢竟這也算是處女作。 本教程是本人學習java mail 的一些學習心得,大部分為原創,一些資料是我收集後整理出來給大家參考的。如

【C/C++開發】【VS開發】win32位x64位下各型別長度對比

64 位的優點:64 位的應用程式可以直接訪問 4EB 的記憶體和檔案大小最大達到4 EB(2 的 63 次冪);可以訪問大型資料庫。本文介紹的是64位下C語言開發程式注意事項。 1. 32 位和 64 位C資料型別 32和64位C語言內建資料型別,如下表所示:

Windows x64彙編函式呼叫約定

最近在寫一些字串函式的優化,用到x64彙編,我也是第一次接觸,故跟大家分享一下。 x86:又名 x32 ,表示 Intel x86 架構,即 Intel 的32位 80386 彙編指令集。 x64:表示 AMD64 和 Intel 的 EM64T ,而不包括 IA6

springCloud微服務系列——配置中心第一篇——配置管理策略

目錄 一、簡介 二、策略 不同的專案 版本管理 一、簡介        從這篇開始總結配置中心,打算分以下內容總結完成 二、策略        springCloud給我們提供了一套管理配置的技術方案,我們需要有自己的管理思路,才能很好

vs平臺選項:Any CPU,x86,x64

        Any CPU平臺下:生成的程式是相容的,也就是說編譯生成的軟體在32位作業系統下會以32位的軟體模式執行,而在64位作業系統下則會以64位的軟體模式執行。         x86

VS配置使用Visual SVN系列 五:SVN Client的配置和使用

VS 中配置使用Visual SVN系列 五:SVN Client的配置和使用 1.TortoiseSVN上傳專案檔案 2.VS中同步該專案檔案 到此VS 中配置使用Vi

【NCNN】第一:NCNN在CMakeLists中的配置

直接上程式碼 # 設定cmake版本,如果cmake版本過高,可能會出現錯誤 cmake_minimum_required(VERSION 3.5.1) project(NCNN_test) # 設