x86-64

Got “Access is denied” when I tried to install 64-bit mongodb in Windows server 2008

让人想犯罪 __ 提交于 2019-12-10 12:32:35
问题 All I did is to run below script: D:\Tools\MongoDb\bin\mongod.exe --dbpath D:\MongoDb\data\ Then I got exception: Error connecting to the service Control Manager: Access is denied. (5) I was using administrator account to operate this, I already created folders related to the script. And I didn't experience issue like this when I installed 32-bit mongodb in 32-bit Windows Server 2003. I appreciate any help about this! 回答1: You need to install it from the command prompt that you have opened

Why does %rbp point to nothing?

扶醉桌前 提交于 2019-12-10 12:16:36
问题 It is known that %rsp points to the top of the stack frame and %rbp points to the base of the stack frame. Then I can't understand why %rbp is 0x0 in this piece of code: (gdb) x/4xg $rsp 0x7fffffffe170: 0x00000000004000dc 0x0000000000000010 0x7fffffffe180: 0x0000000000000001 0x00007fffffffe487 (gdb) disas HelloWorldProc Dump of assembler code for function HelloWorldProc: => 0x00000000004000b0 <+0>: push %rbp 0x00000000004000b1 <+1>: mov %rsp,%rbp 0x00000000004000b4 <+4>: mov $0x1,%eax

Setting up an assembler on 64-bit Windows [closed]

十年热恋 提交于 2019-12-10 11:55:56
问题 Closed . This question needs to be more focused. It is not currently accepting answers. Want to improve this question? Update the question so it focuses on one problem only by editing this post. Closed 2 years ago . I really need some help here. I've been searching online for about 2 days now and can't seem to find an answer to the problems that I got. I downloaded nasm and installed it it seems to work but I can't seem to find any example code that works on windows 64bit (it would be awesome

how to export a function in GAS assembler?

柔情痞子 提交于 2019-12-10 11:30:02
问题 Hi I have the following assembly code , .export __ls__11NSDOM_EncapFf .text __ls__11NSDOM_EncapFf: /* first load the symbolic constant*/ movq _IEEE_FP@GOTPCREL(%rip), %r8 /*%r8 is a scratch register*/ movq (%r8), %r9 /* %r9 and %r11 are scratch registers*/ movl (%r9), %r11d /* second, see if it is zero and branch accordingly */ test %r11d, %r11d /* zero call TNS procedure */ /* non-zero call IEEE procedure */ je ____ls__11NSDOM_EncapFf_tns/* constant equals 0 */ jmp ____ls__11NSDOM_EncapFf

How do you build the 8g and 6g Go compilers for Go

有些话、适合烂在心里 提交于 2019-12-10 10:51:40
问题 I'm writing software that will be somewhat widely deployed amongst Windows, Mac, and Linux systems on x86 and x86-64 architectures. Whenever I set up the go compiler on my Mac and Linux systems I only ever get 6g built. On Windows I just use the pre-built experimental binaries, which uses 8g. When I get around to setting up build servers, I assume I need to also build 8g so I can produce 32 bit builds as well. How do I set up 8g, in particular on a Mac (since they can be x86 or x64 depending

Memory location addressing in ASM

徘徊边缘 提交于 2019-12-10 10:24:07
问题 I'm trying to write self modifying asm code. At some point, I try the following : (NASM compiler) start_of_code: ; ... snip ... cmp byte [rax], 0x66 jae above_label add byte[rax], 0x20 ; ... snip ... above_label: inc rax loop start_of_code gdb shows the following values at start x/8xb $rax : 0x12 0x12 0x11 0x20 0x18 0xfe 0x83 0x9b The first two iterations are ok, the 0x12 are compared as I expect and no jump take place. With 0x11 however, cmp sets the OF flag instead of the CF and jae is

OpenCL speed and float point precision

半城伤御伤魂 提交于 2019-12-10 10:22:58
问题 I have just started working with OpenCL. However, I have found some weird behavior of OpenCl, which i can't understand. The source i built and tested, was http://www.codeproject.com/Articles/110685/Part-1-OpenCL-Portable-Parallelism . I have a ATI Radeon HD 4770, and a AMD Fx 6200 3.8 ghz 6 core cpu. Speed Firstly the speed is not linearly to the number of maximum work group items. I ran App profiler to analyze the time spent during the kernel execution. The result was a bit shocking, my GPU

How do cores decide which cache line to invalidate in MESI?

こ雲淡風輕ζ 提交于 2019-12-10 09:37:51
问题 I have some misunderstanding about cache lines. I'm using Haswell and Ubuntu . Now let's say we have 2-threaded application in which the following happens. mov [addr], dword 0xAC763F ;starting Thread 1 and Thread 2 Now let`s say the threads perform the following actions in parallel: Thread 1 Thread 2 mov rax, [addr] mov rax, [addr] mov [addr], dword 1 mov [addr], dword 2 Now in my understanding of what's going on is this: Before starting the main thread writes to the corresponding cache line

Why can compiler assume that the address of a global variable will fit 32bit? [duplicate]

风格不统一 提交于 2019-12-10 08:46:45
问题 This question already has answers here : How can gcc/clang assume a string constant's address is 32-bit? (2 answers) 64-bit GCC mixing 32-bit and 64-bit pointers (2 answers) Closed last year . When looking at the assembler (see on godbolt.org) of this simple function extern int global; void doit(int *); void call_doit(){ doit(&global); } a 32bit value is used to hold the address of global : call_doit: movl $global, %edi jmp doit I understand, that using 32bit-registers (i.e. %edi ) here is

What is the purpose of the 40h REX opcode in ASM x64?

左心房为你撑大大i 提交于 2019-12-10 07:09:29
问题 I've been trying to understand the purpose of the 0x40 REX opcode for ASM x64 instructions. Like for instance, in this function prologue from Kernel32.dll: As you see they use push rbx as: 40 53 push rbx But using just the 53h opcode (without the prefix) also produces the same result: According to this site, the layout for the REX prefix is as follows: So 40h opcode seems to be not doing anything. Can someone explain its purpose? 回答1: the 04xh bytes (i.e. 040h , 041h ... 04fh ) are indeed REX