上篇讲了如何在编写x64应用程序时加入x64汇编,这里来说说如何在编写x64驱动时加入x64汇编. 一.在asm文件中单独编写功能函数 比如要实现一个64位的加法函数,原型如下: ULONG64 myAdd(ULONG64 u1,ULONG64 u2); 那么源码目录(一般是sources文件所在的目录)新建一个文件夹,名字叫做 amd64. 然后新建一个文件,写入以下内容: .CODE myAdd PROC add rcx,rdx mov rax,rcx ret myAdd ENDP END…
64位驱动里内嵌汇编 讲道理64位驱动是不能直接内链汇编的,遇到这种问题,可以考虑直接把机器码拷贝到内存里,然后直接执行. 获得机器码的方式,可以写好代码之后,直接通过vs看反汇编,然后根据地址在看内存内容,再把内存内容复制出来.或者是去我看的资料上的那个作者提供的一个工具: http://www.vbasm.com/thread-5651-1-1.html)直接把汇编编程机器码. 内嵌的汇编子程序有返回值以及 给汇编子程序传入参数 首先是使用 typedef 定义一下你的汇编子程序的原型,然后…
目录 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 二丶x64汇编 2.1汇编详解 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 在x86下我们汇编的传参如下: push eax call xxx xxx fun proc push ebp 保存栈底 mov ebp,esp 设置ebp sub esp,0C0h 开辟局部变量空间 push ebx 保存寄存器环境 push esi push edi pop edi 恢复寄存器环境 pop esi pop e…
最近断断续续接触了些64位汇编的知识,这里小结一下,一是阶段学习的回顾,二是希望对64位汇编新手有所帮助.我也是刚接触这方面知识,文中肯定有错误之处,大家多指正.文章的标题包含了本文的四方面主要内容:(1)Windows:本文是在windows环境下的汇编程序设计,调试环境为Windows Vista 64位版,调用的均为windows API.(2)X64:本文讨论的是x64汇编,这里的x64表示AMD64和Intel的EM64T,而不包括IA64.至于三者间的区别,可自行搜索.(3)汇编:顾…
最近在写一些字符串函数的优化,用到x64汇编,我也是第一次接触,故跟大家分享一下. x86:又名 x32 ,表示 Intel x86 架构,即 Intel 的32位 80386 汇编指令集. x64:表示 AMD64 和 Intel 的 EM64T ,而不包括 IA64 .至于三者间的区别,可自行搜索. x64 跟 x86 相比寄存器的变化,如图: 从图上可以看到,X64架构相对于X86架构的主要变化,是将原来所有的寄存器都扩大了一倍,例如EAX现在扩充成RAX,同时,又新增加了从R8-R15这…
目录 x64汇编环境配置 一丶x64环境配置 1.1 VS系列编译器配置X64Asm开发环境. 二丶Vs配置X86汇编环境. x64汇编环境配置 一丶x64环境配置 现在windows系统都是64位了,那么对应的汇编也就是说已经升级到64位了. 一直没有时间写博客将64位汇编写出来.所以现在细心整理一下. 首先我们先配置好开发环境,然后我们才能进行开发. 1.1 VS系列编译器配置X64Asm开发环境. 1.1新建一个项目.项目里面添加一个.asm后缀的文件. 当然后缀.asm文件没有,所以我们…
目录 x64汇编第二讲,复习x86汇编指令格式,学习x64指令格式 一丶x86指令复习. 1.1什么是x86指令. 1.2 x86与x64下的通用寄存器 1.3 OpCode 1.4 7种寻址方式 二丶x86指令格式详解. 2.1 instruction 说明 2.2 Opcode 2.3 ModR/m说明 2.4 SIB说明 2.5 Displacement 偏移说明 2.6 immediate 立即数 二丶X64 汇编指令格式详解 x64汇编第二讲,复习x86汇编指令格式,学习x64指令格式…
目录 x64汇编第四讲,c / C++中调用x64汇编 一丶简介 1.说明 二丶C/C++调用 asm64.asm函数. 1.配置asm参与生成 2.给Asm文件添加函数代码 3.C/C++调用asm的函数 x64汇编第四讲,c / C++中调用x64汇编 一丶简介 1.说明 在x86下,我们的C/C++调用汇编可以直接 __asm进行内联. 或者也可以直接静态链接 具体详情可以参考以前博客: https://www.cnblogs.com/iBinary/p/7555503.html 其实在我…
安装Ubuntu12.04 -64位时,用EasyBCD建好引导文件重启电脑后出现如下错误: Error 15: File not found 原因一个是安装文件所在盘符不对,另一个是文件名.Ubuntu12.04 32位的ISO包解压后casper文件夹下内核文件为vmlinuz,而64位解压后casper文件夹下内核文件为vmlinuz.efi.用EasyBCD创建的引导文件中内核文件所用名字为vmlinuz,所以出错.可以将vmlinuz.efi改名为vmlinuz即可解决. 附安装过程如…
原文:编写WCF服务时右击配置文件无“Edit WCF Configuration”远程的解决办法 今天在看<WCF揭秘>书中看到作者提出可以在一个WCF Host应用程序的App.Config文件上右击, 通过弹出的" Edit WCF Configuration”(编辑WCF配置)选项来利用GUI界面编辑WCF的配置信息. 但是我在尝试的时候并没有找到这个右键菜单,开始还以为作者弄错了,但又尝试了一会后便发现了窍门. 右键App.Config文件默认是没有" Edit…