Google Dataflow vs Apache Storm(Google Dataflow vs Apache Storm)
阅读Google的Dataflow API,我的印象是它与Apache Storm非常相似。 通过流水线实时数据处理。 除非我完全错过了这里的观点,而不是在如何执行相互写入的管道之间建立桥梁,我期望与谷歌有所不同,而不是重新发明轮子。 Apache Storm已经处于良好的状态,可以使用任何编程语言。 做这种事情的真正价值是什么?
Reading Google's Dataflow API, I have the impression that it is very similar to what Apache Storm does. Realtime data processing through pipelining flow. Unless I completely miss the point here, instead of building bridges on how to execute pipelines written against each other, I'd expect something different from Google and not reinventing the wheel. Apache Storm is already well-placed and usable with any programming language. What is the real value for doing something like that?
原文:https://stackoverflow.com/questions/28502787
最满意答案
假设32位x86,请使用以下函数:
get_eip: mov eax, [esp] ret
然后,为了在EAX中获得EIP的价值,简单地说:
call get_eip
Assuming 32-bit x86, use the following function:
get_eip: mov eax, [esp] ret
Then, to get the value of EIP in EAX, simply:
call get_eip
相关问答
更多-
假设32位x86,请使用以下函数: get_eip: mov eax, [esp] ret 然后,为了在EAX中获得EIP的价值,简单地说: call get_eip Assuming 32-bit x86, use the following function: get_eip: mov eax, [esp] ret Then, to get the value of EIP in EAX, simply: call get_eip
-
好吧,汇编不一定是理解正在发生的事情的方式。 我会说这是一种感染。 用户进程看不到真正的内存或ioports,它只看到内核显示的内容。 例如,您的并行端口由内核处理,因此使用它涉及使用系统调用。 使用程序集不会让你跨越内核障碍。 我想了解发生了什么,可能你应该问问自己你真正想知道的是什么? 如果您不知道自己在寻找什么,那么我建议您从高级方法入手,然后继续下去: 写一个C程序做你想要的。 检查它,发现它,发现它是如何进行系统调用的! 从这里你可以自己做系统调用,或者在内核空间中进入系统调用屏障的另一端。 但那 ...
-
每次检索并解码指令以执行时, EIP由CPU本身中的微码(固件)更新。 我不相信你甚至可以通常访问它。 但是它可以使用jmp指令进行修改,这在功能上(不包括管道问题等)与mov %eip,address 。 它还会在条件跳转, call和ret指令上进行更新。 将程序加载到内存后(在此过程中,您可以将程序视为与任何其他文件一样的简单数据),OS(或其他某些加载程序)会在程序启动时执行jmp 。 当然,您作为示例代码显示的代码是程序的真正开始,但只是main call ed的函数。 EIP is update ...
-
下面是用于在mac os x(MacOS)上附加文件的更正后的汇编语言代码版本(AT&T样式)。 使用'as'和'ld'命令在Mac终端中编译'myfile.s'程序集文件: as -m32 -o myfile.o myfile.s ld -e _main -o myfile myfile.o .data filename: .asciz "cpuid.txt" output: .asciz "The processor Vendor ID is 'xxxxxxxxxxxx'\n" .bss .lcomm ...
-
while汇编语言循环(while loop in assembly language)[2022-04-10]
while条件正式相当于: while ( a -- != 0 ) (省略比较是合法的混淆。) 编译器生成代码以将a与0进行比较,将结果保存在寄存器al ,然后递减a ,然后测试保存的结果。 The while condition is formally the equivalent of: while ( a -- != 0 ) (Omitting the comparison is a legal obfuscation.) The compiler is generating code to co ... -
汇编语言检查登录(Assembly Language Check Login)[2023-03-05]
为了使用int 21h , ah=0ah从键盘捕获字符串,您需要声明一个包含三个部分的变量:第一个字节指定允许的最大字符数(最大长度),中断将存储的第二个字节用户输入的字符数和字符数组,此数组的长度必须与允许的最大字符数相加 , 加一 ,因为用户将使用ENTER键完成(char 0dh = 13),此键也存储。 捕获输入后,必须将用户字符串(变量a )与字符数组(输入变量的第三部分)进行比较。 下一个代码有评论可以帮助您理解: .model small .stack 100h .data a db "H ... -
是的,其实这是可能的 。 俗话说, 任何事情都是可能的,如果你把它放在心上。 一段时间以来颇受欢迎的游戏, RollerCoaster Tycoon几乎全部采用x86汇编语言编写,尽管使用了几个C函数来与操作系统和DirectX进行交互。 但是,正如你可能想象的那样,这可能是非常痛苦的。 存在更高级别的语言使事情变得更容易。 我最喜欢的, C通常用于接近金属的应用程序,被认为是相当低的水平。 下面是一个从简单C函数(冒泡排序,其中最简单的一个)直接转换为x64汇编的示例: C( 罗塞塔码 ): void b ...
-
不,这在x86-32中是不可能的。 EIP仅通过call指令或中断/陷阱从CPU泄漏。 所有这些方法都会以这种或那种方式使用堆栈。 (相比之下,x86-64允许你相对于rip lea 。) Nope, it's impossible in x86-32. EIP is only leaked from the CPU through the call instruction or on interrupts/traps. All of these methods will use the stack in ...
-
mov ax, 3 mov ah, 0 mov al, 3 这些说明应该做什么? 我猜你忘了写int 10h来设置80x25文本视频模式? 程序中的基本错误(所有内容在Ped7g的评论中都包含在内 )是您只将CL寄存器初始化为循环计数器,其中loop指令取决于整个CX寄存器,而且您错误地修改了它,因此您可以使用CX第二个目的。 ...从(0,0)打印'l'到(0,10)...... 为了获得一个有效的程序,你可以在循环之外放置尽可能多的指令。 CX的重复次数, BH的显示页面, BL的显示属性以及DL中的 ...
-
loop指令不符合您的期望! cmp esi,edi ;Have we reached the middle? loop L1 当您对这些指针进行比较时,您会从CPU获得某些标志,以便您解释比较结果。 通过使用loop指令,你忽略了这一点! 只要ESI指针小于EDI指针,您需要的是条件跳转到循环的顶部。 由于地址是未签名的,我们使用下面的条件。 cmp esi, edi ;Have we reached the middle? jb L1 ...