assembly相关内容

Homoiconic和"无限制的"自修改code +是真的口齿不清自我修改?

我会向前admiting我Lisp的知识是非常微乎其微。但是我在语言非常感兴趣,并打算开始认真学习它在不久的将来。我对这些问题的理解是毫无疑问的缺陷,所以如果我说什么这是blatently错误,请评论和指正,而不是downvoting。 真正Homoiconic和自我修改的语言 我在寻找它同时支持同像性编程语言的例子(code具有相同的重presentation数据)和不受限制自修改(无限制的 ..

LEA或ADD指令?

当我手写组装,我一般选择的形式 LEA EAX,[EAX + 4] 在形式.. 添加EAX,4 我听说LEA是一个“0时钟”指令(如NOP),而“添加”不是。但是,当我看着编译器产生的大会我经常看到用来替代第一个后一种形式。我足够的信任编译器聪明,所以任何人都可以提供一些线索上哪一个更好?哪一个是更快?为什么编译器选择后一种形式了前者? 解决方案 之间的一个显著差异 LEA 和添加 ..
发布时间:2016-07-18 19:56:15 .NET Framework

了解一些汇编语句的目的

我想了解一些总成code和管理来完成大部分,除了几行。我能够理解大部分什么内部发生的,但我不能完全理解什么(为什么)开头发生和code的结束。有人可以阐明这一些轻? INT的main(){ 诠释A,B; 以a = 12; B = 20; B = A + 123; 返回0; } 反汇编版本: 8048394:8D 4C 24 04 LEA为0x4(%E ..
发布时间:2016-07-18 19:56:12 .NET Framework

读取寄存器值成C变量

我记得看到一个方法来使用扩展GCC内联汇编读取寄存器值,并将其存储到一个C变量。我不能尽管对于我的生活记得如何形成汇编语句。任何帮助深表AP preciated。 解决方案 在比其他的答案不同的方向发展,到目前为止,因为我不知道你想要什么。 GCC手册和教派; 5.40变量指定寄存器中 寄存器为int * foo的ASM(“A5”); 下面 A5 是应该使用&hel ..
发布时间:2016-07-18 19:56:09 .NET Framework

不要编程语言编译器首先转换到组装或直接到机器code?

我在流行和广泛使用的编译器,如gcc感兴趣。但如果事情用不同的编译器做不同,我想知道这一点。 以GCC为例,它编译C语言编写直接到短节目的机的code,或者它首先将其转换为人类可读的组装,然后才使用一个(内置?)汇编的汇编程序翻译成二进制的机的code - ?一系列指令到CPU 时使用汇编code创建一个二进制可执行文件显著昂贵的操作?或者是一个相对简单和快速的事是什么? (假设我们正在处理 ..
发布时间:2016-07-18 19:56:08 .NET Framework

RET,RETN,RETF - 如何使用它们

我有以下ASM code: ; INT __stdcall wWinMain(HINSTANCE的hInstance,HINSTANCE ^ h prevInstance,LPWSTR lpCmdLine,诠释nShowCmd) _wWinMain @ 16附近PROCvar_8 = DWORD PTR -8 VAR_4 = DWORD PTR -4 实例句柄= DWORD PTR 8 ^ h ..
发布时间:2016-07-18 19:56:01 .NET Framework

写固件:组装或高的水平?

相关: 测试固件 starting单片机仿真器/模拟器 国米preting组装code 如果你正在写code的微控制器是有真正的区别如果你用汇编或C或其他高级语言编写?如果你写C code,你会如何编译它? 感谢 解决方案 几点意见: 1)绝对的不可以组装除非性能或优化约束保证它。以下指标经过汇编屋顶: 时间code将其 的时间来调试它 的时间来测试它 的时 ..
发布时间:2016-07-18 19:55:59 .NET Framework

线程同步是如何实现的,在汇编语言水平?

虽然我熟悉并发编程的概念,如互斥体和信号,我从来没有明白它们是如何在汇编语言级别上实现。 我想有是一套记忆“旗帜”的说法: 锁A被线程1 举行 锁B被线程3 举行 锁定C不是任何线程持有 等 但如何获得这些标志线程之间的同步?像这样简单的例子东西只会创造竞争条件: MOV EDX,[myThreadId] 等待: CMP [锁定] 0 JNE等待 MOV [锁定 ..

什么是英特尔微code?

这是我读过的用于固定在CPU的错误,而无需修改BIOS。 从我汇编的基本知识我知道汇编指令由CPU内部分为微codeS并据此执行。但英特尔在某种程度上可以访问做一些更新,在系统启动和运行。 任何人有他们的更多信息?有没有关于什么可以在微codeS和做任何文件可如何使用? 编辑: 我读过维基百科的文章。没弄明白我怎么可以写一些我自己的,什么使用它会有。 解决方案 在旧时代,微code ..
发布时间:2016-07-18 19:55:51 服务器开发

什么是LEA EAX点,[EAX]

LEA EAX,[EAX] 我遇到与Microsoft C编译器编译的二进制这一指令。它显然不能改变EAX的值。那么,为什么是在那里呢? 解决方案 这是一个 NOP 。 被typcially作为 NOP 下面。他们都做同样的事情,但他们会导致不同长度的机器code。取决于对齐要求其中之一被选择 XCHG EAX,EAX = 90 MOV EAX,EAX = 89 C0 LEA EAX,[ ..
发布时间:2016-07-18 19:55:48 .NET Framework

C $ C $空调回路性能

我有我的应用程序中的乘加内核和我想提高它的性能。 我使用了英特尔酷睿i7-960(3.2GHz的时钟),并已实现手动使用上证所内部函数内核如下: 的for(int i = 0; I<迭代; I + = 4){ Y1 = _mm_set_ss(输出[I]); Y2 = _mm_set_ss(输出[I + 1]); Y3 = _mm_set_ss(输出[1 + 2]) ..
发布时间:2016-07-18 19:55:40 .NET Framework

什么是你最喜欢的反调试把戏?

在我的previous的雇主,我们使用了第三方组件基本上仅仅是一个DLL和一个头文件。特定模块中的Win32处理打印。然而,取得该组件的公司去bankcrupt,所以我可以不报告我已经发现了一个错误。 所以我决定修复bug自己并推出调试器。我很惊讶地发现反调试code几乎无处不在,通常的 IsDebugger present ,但引起我注意的东西是这样的: ;一些带有异摆弄 ;和数据, ..
发布时间:2016-07-18 19:55:37 .NET Framework

你如何让一个汇编程序?

我想作一个简单的x86汇编。我不知道是否有制作自己的汇编任何教程。或者,如果有一个简单的汇编程序,我可以学习。 另外,我不知道什么工具在寻找和处理程序二进制/六角使用。 解决方案 这是你在找什么: 组装机和装载机 - 大卫·所罗门。 2月出版,1993年版 - 免费提供(下载这里) Ofcourse,你将需要: 英特尔®64和IA-32架构软件开发人员手册 AMD-64架构的 ..
发布时间:2016-07-18 19:55:34 .NET Framework

为什么不写在汇编程序更加频繁?

这似乎是主流意见是汇编程序需要更长的时间和难度较高级语言如C编程中因此它似乎是推荐或认为这是更好的一个更高层次的语言来写由于这些原因和更好的便携性的原因。 最近我一直在x86汇编写,它已经醒悟过来了,或许这些原因是不是真的,也许除了便携性。也许这更多的是熟悉和知道如何编写汇编很好的问题。我还注意到,编程组件比在HLL程序完全不同。也许一个良好的和有经验的汇编编程人员可以很容易地编写程序,并以最快 ..
发布时间:2016-07-18 19:55:30 .NET Framework

在8086仿真打印十进制

我实现了两大整数乘法 EMU8086 与code如下: ;乘法N1 * N2 = RES MULTIPLY PROC MOV BH,0H MOV CH,0H MOV CL,L1;第一环路的初始计数器(L1 - > N1的长度) DEC CX MUL_1: MOV COUNTER,CL;第一环的商场专柜 MOV CL,L2 ..
发布时间:2016-07-18 19:55:24 .NET Framework

内联汇编语言

我做的64位移民,我需要口内联汇编code为他code 要CPP这里 无效ExternalFunctionCall :: callFunction(参数类型resultType,但无效* ResultBuffer的) { // I386 //刚才复制的ARGS缓冲到堆栈(它已经奠定了正确的) 为int *开始= m_argsBegin; 为int * PTR = m ..
发布时间:2016-07-18 19:55:19 C/C++开发

如何递增字符串中LC3信?

我写递增方案下列存储在存储器中的三个字母的单词的每个字母的LC3程序。 'a'变为'D','N'变成'Q','Z'变成'C'等。 我用这作为 LC3大会的参考 下面是我的code到目前为止 .orig这样X3000 ADD R1,R1,#3 LEA R2,STRING 停 STRING .STRINGZ“澳新银行” 。结束 我能弄清楚如何从我的参考声明字符的字符串LC3。但是没有 ..
发布时间:2016-07-18 19:55:13 .NET Framework

汇编编写一个程序菲斯/使用C库

可能有人能帮我解决这个汇编程序:先打印出数字1到100。然后按照儿童票菲斯游戏规则:每当号是5整除,或包含 数字5,由单词“菲斯”更换号码。这是我的计划至今: 的extern的printf 段.data 味精分贝“你好,世界!”,为0xA LEN EQU $ - 味精 FMT:DB“A =%d个,EAX =%d个”,10,0;该printf格式,“\\ n”,“0” .text段 全球主要 ..
发布时间:2016-07-18 19:55:11 .NET Framework