如何在Visual Studio中运行和调试汇编代码
来源:互联网 发布:股票龙虎榜数据 编辑:程序博客网 时间:2024/04/26 07:14
http://www.cnblogs.com/awpatp/archive/2012/07/27/2611522.html
最简单的方法, 就是在VS2010的C++文件里直接使用__asm{} 直接写汇编代码. 实例代码如下:
#include <iostream>using namespace std;int main(){ char a[10] = "1234"; __asm { push eax push edx push ecx lea eax, a mov cl,byte ptr [eax] mov dl,byte ptr [eax] movzx ecx,cl movzx edx,dl shr ecx,4 shl edx,4 or ecx,edx mov byte ptr [eax],cl inc eax mov cl,byte ptr [eax] pop ecx pop edx pop eax }}
另外是书写彻底的汇编代码, 具体步骤如下, 就不翻译了.
How to Use VS2010 to Write Assembly
===============================
Using Visual Studio to write an assembly program may be tricky. Specific steps are to be followed in order to be able to create your first MASM x86 assembly program with VS2010 (images from the configuration steps mentioned below are taken fromhere):
Expand the ‘Other Project Types‘ tree, Select ‘Visual Studio Solutions‘, and create a new ‘Blank Solution‘.
File | Add | New Project…
Expand the ‘Other Languages‘, ‘Visual C++‘, ‘General‘ section and create a new ‘Empty Project‘.
Now right click on the Project in the Solution Explorer and select ‘Build Customizations…‘.
Tick the ‘masm‘ box and say OK.
Add a new file to the project with the .asm extension by right clicking on the Project in the Solution Explorer and selecting ‘Add | New Item…‘ then ‘Text File‘. Enter a filename ending with.asm (e.g. test.asm). Press OK.
Now (and if you skipped the last steps, this won’t work) right click on the Project and select ‘Properties‘. You should see a dialog like this (Note the MASM item at the bottom of the tree). If you don’t, then something went wrong.
There are a few critical things to set up in the Linker options in order to get it to work:
Set the following property to Windows or Console as appropriate:
Configuration Properties > Linker > System> SubSystem
Set the entry point to the name of your main method (as per the END directive – see code):
Configuration Properties > Linker > Advanced > EntryPoint
All you have to do now is write some code and run it.
遵循上面的步骤, 我成功的运行并调试了一段汇编代码.下面是我的源代码和调试截图.
.586 ;Target processor. Use instructions for Pentium class machines
.MODEL FLAT, C ;Use the flat memory model. Use C calling conventions
.STACK ;Define a stack segment of 1KB (Not required for this example)
.DATA ;Create a near data segment. Local variables are declared after
;this directive (Not required for this example)
.CODE ;Indicates the start of a code segment.main PROC
push ebp
mov ebp,esp
mov edx, 80002418h
xor eax,eax
mov ecx,20hSFT1:
shr edx,1
jnc LOOP1
inc eaxLOOP1:
loop SFT1
pop ebp
retmain ENDP
END
参考资料
======================
Assembly Programming with Visual Studio 2010
http://www.codeproject.com/Articles/271627/Assembly-Programming-with-Visual-Studio-2010
Assembly sample source codes
http://www.assembly.happycodings.com/code6.html
- 如何在Visual Studio中运行和调试汇编代码
- 如何在Visual Studio中运行和调试汇编代码?
- 如何在Visual Studio项目中正确添加汇编代码
- 如何在Visual Studio项目中正确添加汇编代码
- 如何在Visual Studio项目中正确添加汇编代码 .
- 如何在Visual Studio项目中正确添加汇编代码
- 如何在Visual Studio项目中正确添加汇编代码
- 如何在VC Studio中调试时查看汇编代码?
- 在 Visual Studio 中启动、中断、单步执行、通过代码运行和停止调试
- 如何在Visual Studio Code中直接运行html代码
- 如何在Visual Studio和CodeBlocks中反编译C++代码
- 如何在Visual Studio Code中调用浏览器运行HTML代码
- 如何在Visual Studio Code中调用浏览器运行HTML代码
- 如何在 Visual Studio 2005 中调试 JavaScript
- 如何在Visual Studio中调试.NET源码
- 如何在Visual Studio中直接使用示例代码浏览器搜索下载和管理代码示例
- 如何在Visual Studio Code 中运行 Python
- 【IDE-Visual Studio】如何在使用vs调试如何才能不显示反汇编?
- 举例说明Android中AnalogClock的使用
- DS, ES, SS, DI, SI, BP, SP, IP, FS 寄存器
- CONST
- 山寨腾讯的Tab切换特效添加了自动切换功能
- Linux内核通知链notifier
- 如何在Visual Studio中运行和调试汇编代码
- ios sqlite3.0数据库的简单操作
- 学会用google搜索
- iPhone应用开发之AudioServicesPlayerSystemSound音频播放
- android service 学习(上)
- CSLA.Net 3.0.5 版本 教学程序,代码附教学注释
- .net快捷键大全--转载
- LINUX netlink机制
- use slider to realize the button function