assembly相关内容

什么是_emit在MASM等效

我试图港口一些内联汇编code写在Visual Studio中为MASM64。原来的code使用_emit这是一个伪指令,用于定义一个字节在当前文本段的当前位置。 我怎么会做同样的64位汇编MASM? 解决方案 您也可以只使用分贝,如: 分贝10小时 您在一个数据段做到这一点最常见的,除非事情在64位版本的MASM已经改变,它应该在code段正常工作。 ..
发布时间:2015-11-28 12:16:29 其他开发

获取的64位整数乘法的高位部分

在C ++中,说: uint64_t中我; uint64_t中D]; 然后 I *Ĵ将产生一个 uint64_t中具有的价值,倍增的下部之间我和Ĵ,即(I * j)条模2 ^ 64 。 现在,如果我想乘法较高的部分?我知道,存在一个汇编指令使用32位整数的时候做这样的事情,但我不熟悉在所有与装配,所以我希望寻求帮助。 什么是最有效的方法,使这样的: uint64_t中K = m ..
发布时间:2015-11-28 12:16:05 C/C++开发

绝对寻址运行时code置换的x86_64

我目前使用的一些code替代方案,32位,其中code被移动到另一个位置,读取变量和类的指针。由于x86_64的不支持绝对地址,我有麻烦了变量的正确地址为的code中的新位置。详细的问题是,由于裂口相对寻址指令指针地址,它是不是在编译时不同。 那么,有没有一种方法,使用绝对地址,在x86_64的或另一种方式来获得相关变量不是指令指针的地址? 是这样的: leaq变量(%% RAX),%% RB ..
发布时间:2015-11-28 12:14:07 其他开发

Linux的英特尔64位大会师

我挣扎着理解为什么我司不工作,下面是我目前的code,它只是接受两个个位数,并试图将它们: STDIN EQU 0 SYS_READ EQU 0 STDOUT EQU 1 SYS_WRITE EQU 1 段.DATA NUM1 DQ 0 NUM2 DQ 0 QUOT DQ 0 REM DQ 0 段的.text 全球_start _开始: M ..
发布时间:2015-11-28 12:13:11 服务器开发

使用RIP相对的OSX的x64汇编处理

我试图做一个基本的的printf 例如,在x86-64的组装$ C $下OSX,这是我的第一个版本: 部分.DATA 味精DB'你好',0AH 段.text EXTERN _printf 全球_main _主要: 分RSP,8 MOV偏下,味精 MOV RAX,0 拨打_printf 添加RSP,8 RET 所以这个code为移动信息的绝对地址为 RDI ..
发布时间:2015-11-28 12:11:14 其他开发

德尔福/ ASM code与64位兼容?

我有一些示例源$ C ​​$ C的OpenGL,我想编写一个64位版本(使用Delphi XE2),但有一些ASM code的编译失败,而我什么都不知道ASM。这里的$ C $低于C,而且我把两个错误信息上失败...... 行 //从复制源的像素到dest和交换的RGB颜色值 程序CopySwapPixel(const的来源,目的地:指针); ASM 按EBX // [DCC错误]:欧普c ..
发布时间:2015-11-28 12:10:16 其他开发

Linux的64:为什么R8和R9之前不会R10进来的系统调用?

我决定采取裂缝在装配有一天,我已经被玩弄,例如打印的东西从ARGV到标准输出很基本的东西。我发现的Linux系统调用号这个大名单带参数和一切,我很好奇,为什么 R10 在 R8 和 R9 。我发现各种怪异公约关于什么可以用来做什么和什么时候,像循环计数器 RCX 怎么走。是否有特别的原因 R10 被感动了?是不是更方便? 我应该还提到我很感兴趣,这是出于好奇,不是因为它引起了我的问题。 编辑: ..
发布时间:2015-11-28 12:10:09 服务器开发

64位应用程序:布局在内存

64位操作系统指的通用寄存器的位宽度。它能够一次处理64位(数据+操作)。 我们知道,为了使64位系统是真正有用的,程序员需要写64位应​​用程序。 不过,不知所不同的是一个32位应用程序和64位应用程序之间有什么?我不要求我需要编译一个64位的应用程序了哪些配置更改;相反,我想知道这两个应用程序在内存中的结构性差异。 例如,Linux上的C程序通常是这样的记忆: 1,文本段 2,初始化数据 ..
发布时间:2015-11-28 12:08:18 其他开发

如何获得Python的使用大会

我是一个初学者在组装,但Python中的高手。我才刚刚开始学的x86_64 NASM的窗户,我希望大会的权力和Python的灵活性相结合。我已经看过一切都过去了,我还没有找到一种方法,使用NASM汇编程序从内部的Python。我这样说并不意味着行内汇编。我想编写一个汇编程序,编译它,然后以某种方式提取我的Python程序中使用的程序。有人能说明如何做一个简单的例子,因为我完全丧失。 解决方案 ..
发布时间:2015-11-28 12:08:15 Python

如何取消便携是汇编语言,/真的/?

据我所知,写在装配任何东西,或添加组件的任何程序损害了其便携性。但是,怎么不好?我的意思是,基本上所有的PC都是x86或x64这些日子,对吧?所以,如果我嵌入汇编成C程序,为什么不它仍然编译不管它在哪里去了? 难道非便携性这个概念仅仅是指当你的真正的挖向特定处理器的特殊怪癖,挤出的每一滴性能,从一张code? PC游戏“过山车大亨”写几乎完全用汇编语言,如果我没记错的话。所以......如何取 ..
发布时间:2015-11-28 12:07:58 其他开发

指令级分析:指令指针的意义?

当在汇编指令级分析code,什么是真正的意思给出的指令指针的位置,现代的CPU不执行指令顺序或按顺序?例如,假设下面的64集code: MOV RAX,[RBX] //这里假设高速缓存未命中。 MOV RSI,[RBX + RCX]。 //另一个缓存未命中。 XOR R8,R8; 加入RDX,RAX; //取决于负载成RAX。 添加RDI,RSI; //依赖于加载到RSI。 这指令的指 ..
发布时间:2015-11-28 12:07:41 其他开发

64位Linux,汇编语言,问题是什么?

我目前是在学习汇编语言的过程。 我使用天然气上的 Linux Mint的(32位)。使用本手册: 从地上爬起来 编程。 我正在使用的机器有一个 AMD炫龙64位处理器,但我敢限制为2 GB的RAM。 我想升级我的Linux安装64位版本的Linux Mint的的,但我很担心,因为这本书是针对32位x86架构的code的例子是行不通的。 于是两个问题: 有可能是与code样?任何问题 有没有人 ..
发布时间:2015-11-28 12:07:39 服务器开发

C库在x86 / x64汇编

有用于装配在x86 / x64汇编字符串运算codeS? C库 例如code: / * SIZE_T组装(字符*字符串,INT asm_flavor,字符*出来,为size_t MAX_SIZE); * / 无符号字节字符[32]; 为size_t大小=组装(“XOR EAX,EAX \ N” “INC EAX \ N” ..
发布时间:2015-11-28 12:07:17 其他开发

编译32位汇编​​程序在64位的Ubuntu

我编写的程序在32位汇编​​语言......现在,我只是不能在64位操作系统上进行编译。在我们学校,他们是具体的,程序必须使用32位版本。这是我的计划: 位32 EXTERN _printf 全球_start 段.data 消息分贝“世界,你好!”,10,0 段.text _开始: PUSHAD 推DWORD消息 拨打_printf ADD ESP, ..
发布时间:2015-11-28 12:06:58 服务器开发

如何使用RIP相对寻址的64位汇编程序?

我如何使用RIP相对寻址在Linux汇编程序的AMD64 archtitecture? 我要寻找一个简单的例子(一个Hello World程序),采用AMD64 RIP相对adressing模式。 例如下面的64位汇编程序将与正常的(绝对地址): 的.text .GLOBAL _start _开始: MOV $ 0xd中,%RDX MOV $味精,RSI% ..
发布时间:2015-11-28 12:05:14 其他开发

为什么复杂的memcpy / memset的卓越?

在调试时,我经常走进手写组件执行的memcpy和memset。这些都是使用流式指令通常实现(如果可用),循环展开,调整优化,等等......我最近也遇到了这个的'错误'由于glibc的的memcpy的优化。 现在的问题是:为什么不能在硬件厂商(英特尔,AMD)优化的具体情况 代表STOS 和 代表MOVS 要予以承认,并做的最快的填充和复制上尽可能的自身的架构? 解决方案 ..
发布时间:2015-11-28 12:05:09 其他开发

如何让我的基于x64的过程比对异常?

我很好奇,看看我的64位应用程序的定位错误受到影响。 从 Windows数据对齐对IPF,x86和x64的: 在Windows中,生成一个校准故障会引发异常的应用程序, EXCEPTION_DATATYPE_MISALIGNMENT 。 在Itanium ,默认情况下,操作系统(OS)将这个异常可见的应用程序,并终止处理程序可能会在这些情况下非常有用。如果不建立一个处理程序,那么你的 ..
发布时间:2015-11-28 12:05:05 其他开发

64 NASM:推内存地址到堆栈和放大器;通话功能

我是pretty的新的Mac上的x64汇编,所以我越来越糊涂移植某些32位code在64位。 该方案应该简单地打印出通过从C非标准库中的的printf 功能的消息。 我已经开始使用此code: 部分.DATA 味精DB“这是一个测试”,10,0;一些愚蠢的事在这里 段.text 全球_main EXTERN _printf _主要: 推RBP MO ..
发布时间:2015-11-28 12:04:36 其他开发

64位大会介绍

我要寻找它引入英特尔的64位处理器,并装配了文章:基于x64寄存器列表,命令语法等,为程序员熟悉32位大会。那种“什么是新的”64位处理器。 解决方案 HTTP ://www.$c$cproject.com/KB/vista/vista_x64.aspx http://msdn.microsoft.com/ EN-US /库/ ms235286%28VS.80%29.aspx ..
发布时间:2015-11-28 12:04:26 其他开发

大会的64位NASM

我在做一个凸出。在64位的NASM。我要十进制转换为二进制和二进制到十进制。 我不断收到分段错误,当我调用printf调试后。 EXTERN的printf .bss段 decsave:RESD 2;商店癸> bin转换 binsave:RESD 1 段.data; preSET常数,可写 DEC1:分贝'1','2','4','3','7','5',0'。' BIN1:DQ 01​ ..
发布时间:2015-11-28 12:03:21 其他开发