assembly相关内容

x86指令含义

我通过一些code运行现在的gdb的,我不知道什么这两个指令实际上做。如果有人可以帮助我,我真的AP preciate它。 添加-0x2c(EBP%,EBX%,4),EAX% CMP%EAX,-0x28(EBP%,EBX%,4) 解决方案 x86汇编通常更容易,当你在Intel语法,而不是AT&放写明白; T语法 在Intel语句将是:添加EAX,[EBP + 4 * EBX-0x2C ..
发布时间:2016-07-18 19:55:02 .NET Framework

我该怎么办输入/输出与MASM一个控制台上?

我GOOGLE和一派,我还没有发现任何有用的东西。我怎么能输出发送到控制台,并从组装控制台接受用户输入的? 我使用MASM32 解决方案 由于filofel说,使用Win32 API。这里有一个小的hello world例如: .386 .MODEL平,STDCALL STD_OUTPUT_HANDLE EQU -11 GetStdHandle PROTO,nStdHandle: ..
发布时间:2016-07-18 19:54:59 .NET Framework

打印而不OS字符串

我在x86汇编语言的简单程序。它应该直接打印一个字符串显存没有OS。 [位16] [有机0x7c00] MOV AX,0x3中 INT为0x10 SDL MOV AX,0xb800 MOV ES,AX MOV SI,味精 XOR嘀,嘀 REPNZ MOVSW JMP $ MSG DB'你好' 次510 - ($ - $$)0分贝 DW 0xAA55将 但它不工作。你能帮助我吗? 解 ..
发布时间:2016-07-18 19:54:52 .NET Framework

用glibc静态链接,而无需调用主

我已经用NASM这就要求的printf 和 _exit 从libc中,但并没有采用简单的Hello World 主。 的extern的printf EXTERN _exit段.data 你好:DB“世界,你好!”,10.text段 全球_start _开始: XOR EAX,EAX MOV EDI,你好 调用printf MOV RAX,0 ..
发布时间:2016-07-18 19:54:50 .NET Framework

在循环使用内联汇编阵列

当遍历与内联汇编阵列我应该使用寄存器修饰符“R”或他的内存修改器“M”? 让我们考虑它增加了一个例子两条浮法阵列 X 和是,并将结果写入以Z 。通常我会用内部函数来做到这一点像这样 的for(int i = 0; I< N / 4;我++){ __m128 X4 = _mm_load_ps(安培; X [4 * i]); __m128 Y4 = _mm_load_ps(安 ..
发布时间:2016-07-18 19:54:47 .NET Framework

x86汇编:CMP REG,0 VS或REG,REG

有没有用下面的code的执行速度区别: CMP人,0 JE完成 和以下内容:或人,人 JZ DONE 我知道JE和JZ指令是相同的,并且也在使用或提供一个字节的大小的改善。不过,我也关注与code的速度。看来,逻辑运算符会比一个SUB或CMP更快,但我只是想确认一下。这可能是规模和速度,或者一个双赢的(当然code将会更加不透明)。之间的权衡 解决方案 这取决于确切code序列,它 ..
发布时间:2016-07-18 19:54:44 .NET Framework

INC指令VS加1:什么关系呢?

大多数情况下,我远离INC和DEC走了,因为他们做的部分 条件code更新,这可能会导致在滑稽摊位 管道和ADD / SUB没有。那么,它并不重要(大部分地方), 我用ADD / SUB避免摊位。我用INC / DEC只保留当 code小问题,例如,在一个高速缓存行,其中拟合的大小 一个或两个指令赚了足够的差异关系。这是 大概没有意义的纳米[字面!] - 优化,但我pretty 老派 ..
发布时间:2016-07-18 19:54:40 .NET Framework

使用汇编语言不使用定时器Arduino的乌诺创建延迟

我刚开始学习微控制器和我是不是能够理解我们如何能够引进在code拖延不使用定时器。 我的主板有16MHZ的时钟。比方说,我想介绍延时5ms我检查前如果按钮pressed。我将如何确定我需要多少执行的指令得到5毫秒的延迟,我将如何编程呢? 是否有这样做的一个标准化的方式?它看起来像一个非常标准的东西,但我不能够理解它是如何做。 我使用的Atmega 328的Arduino UNO汇编语言编程。 ..
发布时间:2016-07-18 19:54:38 .NET Framework

什么设置不REP吗?

引用的英特尔®64和IA-32架构优化参考手册,§2.4.6“REP字符串增强”: 使用REP串的性能特征可以归因于两个组件: 启动开销的和数据传输的吞吐量。 [...] 对于较大粒度的数据传输REP串,作为ECX值 增加, 的REP字符串展品逐步增加启动开销的 短字符串(ECX< = 12):REP MOVSW / MOVSD / MOVSQ的潜伏期大约为 20 ..
发布时间:2016-07-18 19:54:33 .NET Framework

注册,携带,溢出标志(议会)

。数据 VAL1 BYTE 10H val2的WORD 8000H VAL3 DWORD地址0FFFFh VAL4 WORD 7FFFh表示, 如果将val2 1使用ADD指令增加,会是怎样的进位值 和注册的标志吗? 如果VAL4由1使用ADD指令增加,这将是超额的价值 流量和注册标志? 我回答都和让他们都错了。为什么的答案是什么? 解决方案 把它想象成一种模拟时钟。在实际的时钟时代“六 ..
发布时间:2016-07-18 19:54:29 .NET Framework

使用诠释为0x10引导程序打印垃圾的第二阶段/啊=为0x0E

我想学习汇编和写入引导程序。下面code加载软盘驱动器内存中的内容,并跳转到它(开始加载地址为0x1000)。这code被认为能打印出“X”在屏幕上,但由于某些原因,它打印的空间。谁能告诉我什么是错的? [位16] JMP复位 复位:;复位软驱 异斧,斧; 0 =重置软盘 MOV DL,0;驱动器0是软盘 INT 0x13 JC复位;如果进位标志设置,再试一次 ..
发布时间:2016-07-18 19:54:28 .NET Framework

中断,指令指针和指令队列8086

假设一个外部中断请求到8086的处理器作出正在执行(如果有的话)在完成当前指令之后将处理该中断。处理中断之前,程序的状态也将通过将数据推入堆栈段保存(PSW标志,寄存器等)。 现在,大多数的教程/文档描述了指令指针也被压入堆栈段,这是好的,因为它指向了code段(被做了中断请求之前)指令的下一个字节。 但发生了什么指令队列?难道它也压入堆栈段时中断请求被处理?或者是它的内容被清零?在这种情况下 ..

我不知道如何使用中断21,AH = 0AH

我的信息是从这里到来。分配要求一个程序,读取不超过20个字符,这些字符转换为大写,然后打印输入的首都。 我不知道如何从INT21 / AH = 0AH访问输入。我真的,除非我明白什么是上面链接不能要求一个更precise问题。有人能解释一下吗?另外,我使用TASM如果让任何区别。另外,我上的FreeDOS测试这个。 UPDATE1: 好吧,感谢你的帮助,我相信我明白中断需要如何设置和行为方式 ..
发布时间:2016-07-18 19:54:15 .NET Framework

输出整数装配在Linux上

这需要在纯组装完成(即没有图书馆或调用C)。 我理解问题的本质是:人们需​​要由10来划分整数,​​转换一个数字其余为ASCII,输出再与商数重复该过程。 但由于某些原因,它只是不工作。我使用的x86 NASM。 下面就是我到现在(不输出任何东西,但不抛出任何错误汇编其一): ;整数输出被存储在eax中 MOV ECX,10;为基数10循环: DIV ECX,EAX包含商,EDX余数;做一 ..
发布时间:2016-07-18 19:54:12 .NET Framework

生产循环无GCC CMP指令

我公司拥有一批紧密循环,我试图用GCC和内部函数进行优化。考虑例如下列功能 无效黑社会(浮点* X,浮动* Y,浮动* Z,const int的N){ 浮K = 3.14159f; INT I; __m256 K4 = _mm256_set1_ps(K); 对于(i = 0; I< N,I + = 8){ _mm256_store_ps(安培 ..
发布时间:2016-07-18 19:54:04 .NET Framework

在DLL调用不导出函数

我有它加载的DLL程序,我需要调用它包含非导出的功能之一。有没有什么办法可以做到这一点,通过在调试器或其他搜索?有人问之前,是我对函数的原型和东西。 解决方案 是的,有,至少那种,但它是不是一个好主意。 在C / C ++所有的函数指针,是在内存中的地址。所以,如果你以某种方式在哪里能找到这个函数的地址,你可以把它。 让我问一些问题,虽然,你是怎么知道这个DLL包含此功能?你有源$ C ..
发布时间:2016-07-18 19:53:59 C/C++开发

什么是`test`指令呢?

我在看一些小汇编codeS和我无法理解的测试指令和它的使用。我期待在以下code在循环的末尾: 8048531:84 C0的测试人,人 8048533:75 DC JNE 8048511<作用+ 0x2d> 我理解测试的方式是,它的工作原理有点像AND运算,并设置一些标志。我想我真的不明白的标志是如何工作的。 测试人,人来我看起来像它会检查相同的下限位,总是会得到相同的结果。 ..