在J2ME中排序Hashtable(ordering of Hashtable in J2ME)
我有一些数据,我已经在一些订单中将它们添加到Hashtable,我现在要做的是按照我输入的顺序获取数据
我可以使用哪种数据类型?
I have some data and I have added them to Hashtable in some orders what I want to do now is to get the data in the same order that I have entered
What is the data type that I can use?
原文:https://stackoverflow.com/questions/10384117
更新时间:2023-05-20 16:05
最满意答案
问题来自这条线
cmpq $33, %rsi
它应该是
cmpq $32, %rsi
你是在
.quad 31
之后访问内存中的垃圾并在movq (%r9,%rax), %r11
.quad 31
粘贴到r11中movq (%r9,%rax), %r11
The problem comes from this line
cmpq $33, %rsi
it should be
cmpq $32, %rsi
you are accessing the junk in the memory after
.quad 31
and sticking that into r11 atmovq (%r9,%rax), %r11
相关问答
更多-
C标准规定了每个库函数必须执行的操作,而不是如何实现。 几乎所有已知的C实现都被编译成机器语言。 这取决于C编译器/库的实现者如何选择实现像strlen这样的函数。 他们可以选择在C中实现它并将其编译为一个对象,或者他们可以选择将它编写成汇编并将其组装到一个对象中。 或者他们可以用其他方式来实现它。 只要您在调用strlen时获得正确的效果和结果,无关紧要。 现在,碰巧,许多C工具集允许您编写内联汇编,但这绝对不是标准的一部分。 任何这样的设备都必须作为C标准的扩展。 The C standard dict ...
-
从C调用汇编函数(Calling an assembly function from C)[2021-11-09]
问题来自这条线 cmpq $33, %rsi 它应该是 cmpq $32, %rsi 你是在.quad 31之后访问内存中的垃圾并在movq (%r9,%rax), %r11 .quad 31粘贴到r11中movq (%r9,%rax), %r11 The problem comes from this line cmpq $33, %rsi it should be cmpq $32, %rsi you are accessing the junk in the memor ... -
在Nasm中调用汇编函数(Calling Assembly Functions in Nasm)[2022-08-27]
最后你必须有引导扇区的签名。 我正在谈论这个部分: times 510 -( $ - $$ ) db 0 dw 0xaa55 现在你的my_print_function不在启动扇区,甚至没有被BIOS加载。 您需要将该功能移至签名前。 You must have the signature of the boot sector at its end. I'm talking about this part: times 510 -( $ - $$ ) db 0 dw 0xaa55 Right now y ... -
问题是: 不保留%ebx和%edi 不编译32位(必须使用-m32标志为gcc) cmpl操作数被颠倒了 谢谢大家,问题解决了。 我将更多地关注调试工具(逐步拆卸和运行非常有用)! The problems were: not preserving %ebx and %edi not compiling for 32 bit (had to use -m32 flag for gcc) cmpl operands were inverted Thanks everybody, problem is solv ...
-
当您使用linux-kernel标记的任务时,请查看以下内核头文件: arch / x86 / include / asm / calling.h 。 3 x86 function call convention, 64-bit: 4 ------------------------------------- 5 arguments | callee-saved | extra caller-saved | return 6 [callee-clob ...
-
C编译器可能会以不同的方式调用实际的“函数”,例如_do_str而不是do_str。 不会发生名称修改始终可能取决于系统(当然还有编译器)。 尝试调用asm函数_do_str。 使用适当的属性 (在gcc中)也可以解决问题。 也读这个 。 C compilers may call the actual "function" differently, e.g. _do_str instead of do_str. Name mangling not happening always could depends ...
-
就我的问题而言,您可以通过C程序覆盖来自汇编程序的目标文件。 所以你再也没有汇编程序了。 你应该写信 生成so对象文件 nasm s.asm -f elf -o s.o 生成test.o (你的命令创建了另一个) gcc test.c -c 链接应用程序 gcc s.o test.o -o testapp (我选择testapp作为输出二进制文件,因为test通常是程序的一个非常糟糕的名字,它与Unix命令test冲突) As far as I can see from your quest ...
-
您可以在GDB或其他调试器中加载程序,并在调用上设置断点,然后单步执行log或exp函数,然后在其中转储它的反汇编(或者如果您运行的是适当的,则复制并粘贴它调试器)。 即使您没有库函数的源,也可以这样做。 You could load your program in GDB or another debugger, and set a breakpoint on the call, and then step into the log or exp function and when there, dump ...
-
它可能取决于您的编译器,汇编器和链接器工具链,但前向声明是正确的方法。 extern void func(void); 不能按照您期望的顺序调用编译器和汇编器。 编译器必须知道函数运行时的名称。 将函数声明为.global (或.public )将导致汇编程序发出公共符号: _func ,但由于这是内联汇编,因此C编译器无法使用它。 您需要告诉C编译器有关该符号的信息,以便它知道要发生什么,并且链接器必须知道使用汇编器中的输出符号作为C引用的输入符号。 It may depend on your comp ...
-
通常有两种方法可以使用汇编程序中的C /或任何其他HLL函数: 静态链接 - 如果使用链接器,则可以将程序与所需的HLL生成的.obj或.lib文件链接在一起。 动态链接 - 您的程序在加载期间链接到所需的函数,而不是编译。 有两种可能的实现: 2.1。 手动加载动态库并获取所需函数的地址。 您必须使用OS提供的服务。 例如在Linux中,这是sys_uselib(非常过时)或者自己加载库并解析ELF文件以获取函数地址; 2.2。 构建包含要使用的库和函数列表的导入表。 然后,OS加载程序将自动提供占位符变 ...