| |
| |
| |
|
Page: 1 2
Comments:
<0> hey all <1> ok iam currently extending the debugger <1> woops <2> hi <2> stupid question but: what are some common uses for 'XOR'? is it only used for encryption/decryption stuff? <3> no, random number generation, xor a,a a quick clear and other logic <2> what other logic? <3> whatever the programmer requires <3> bit inversion is a normal use <4> So changing code segment (cs) is special because you cannot do it with a mov command? You must do a far jump (jmp far?) ? <4> Is 'jmp far' a special intel instruction just to set cs? <4> (and ip/eip ?) <4> IS the 'far' part optional? ...jmp 0xabc:0xdef ok w/o 'far' ?? <4> and far means 'change segments' right? <5> yes far calls/jumps are intersegment <5> short/near are intra
<6> What does it mean to jump segments? <7> back <7> i think it means you change code segments. <6> I always thought a running thread only has one code segment <7> by jumping or changing it manually. <7> you can have X <7> X number of CS. <6> Why would you want a second code segment? <7> because your code is huge <7> or you generate dynamic code and what top execute it <7> or you load another program and jump in <6> As far as I know, you can only do that if you have access rights into that other programs address space <6> which typically you don't have <5> segment is limited to 64k in real mode <7> yeah <5> so you have to change segment if your code > 64k <5> in protected mode <5> you need to change segment if you want to change your cpl <4> edcba: cpl? <5> ring3 .. ring0 <7> current privilege level <4> ah <5> but segments tend to be not really used anymore <4> thank goodness <4> except to climb over them in the boot loader <4> so are there multiple ways to change segments? seems there are... <4> jmp 0xabc:0xdef <4> jmp far 0xabc:0xdef <4> ljmp 0xabc:0xdef <5> they are the same <4> edcba: all 3? <5> yes <7> mov cs,0 <5> you can't address cs directly <7> that'd be col <7> cool* <5> you could with a 8086 <5> pop cs <6> can't pop cs either <4> pireau: cs is weird cuz you can't even change like you can ds, ss, es, fs, gs <7> i know <5> i said with a 8086 <7> it's like eip <7> you can't change it directly <7> only with call/jmp/iret/ret/sysleave/sysenter (last 2 i'm not sure) <6> whats sysleave and sysenter? <5> jmp/call/ret far iret <7> and then some :) <7> __mikem: "fast" system call thingny <5> yes sysleave sysenter int <7> never looked into it that much. <5> into <5> int1 <5> int3 <7> etc <5> bound <5> any instruction that generates a int :) <6> sysleave and sysenter sound like isntructions that the intel optomization manuel would tell you not to use <7> haha <7> i don't have that manual <4> edcba: is left part of jmp 0xabc:0xdef (i.e. 0xabc) 16 bits like segment registers are?
<4> segment part* <5> of course :) <5> right part is either 16 or 32 bits <4> edcba: but there this 4 bit left shift so wasn't sure <4> the multiply by 16 <4> thingee <4> Any chance PAGING won't be used in future as amount of RAM approaches addressible limit of CPU? <4> e.g. 386 laptops w/ 4 Gb RAM <5> you didn't heard about 64bits cpu ? :) <8> seb-: you forget that the Pentium Pro and up can address 64gb of memory <8> due to its PAE extension <9> What's the AT&T x86 syntax to load a value from 4*eax+ebx into ecx? <6> some versions of gas have a switch that enables intel syntax, .intel_syntax noprefix <9> Interesting <10> PenguinOfDoom: Been a long time, but isn't it something resembling mov %ecx, (%ebx,%eax,4) ? <9> avx: Yes, except with swapped argument order. <10> aha :) <9> 400477: 67 46 0f 44 04 95 ef addr32 cmove 0xffffffffdeadbeef(,%r10d,4),%r8d <9> 40047e: be ad de <9> Ain't it beautiful? <9> 400481: 67 47 0f 45 04 91 addr32 cmovne (%r9d,%r10d,4),%r8d <9> Oh, sign-extended. <10> Makes me wonder why I ever, ever programmed in asm :p <9> Pity gas is not a library :P I could sure use that. <4> [label] is *contents* of label rather than the address.....THEREFORE, seems you should do lgdt GDT_LABEL rather than lgdt [GDT_LABEL] right? <4> my docs say otherwise >:| <4> nasm won't me write to frame buffer w/ this instruction...why?===> mov 0x000b8005, 0x1b <4> i get : error: invalid combination of opcode and operands <4> everyone says intel stack grow DOWN but is it possible to set up protected mode descriptors so that stacks grow UP??? <4> if it is really true stack ALWAYS grown down then i can put esp at 0x00007c00 and it will NEVER blow away my boot loader in memory RIGHT? <9> Is there a not-abandoned JIT library with a C API? softwire, ccg and lightning are a few years stale and LLVM wants C++. <7> ahoy <4> is writing to frame buffer ONLY allowed in protected mode for some reason? <4> ....or can only draw to screen with it in pmode? <7> what do you mean frame buffer <4> pireau: boot loader docs suggested by writing to a region of memory...0x000b800 iirc, you could write to screen which would be a TEST if whether you <4> successfully moved to pmode <7> well usually, if you set a GDT an LDT and set bit 0 to 1 in CR3 <7> you're in pmode <7> 0xb80000 <4> is there a reason frame buffer usage only works in pmode? <7> that's the vram <4> yes <7> it should work in realmode too <4> darn..my boot loader worked w/o crashing... <4> i'm looking for confirmation all is rosy and bugfree <7> hehe <11> Kennt jemand einen guten MUD-Client fr Linux? <12> tf? <13> 'morning <14> morning <15> where can i find a nice directx wrapper lib? <16> can someone help with with something? <16> its simple question about debugging <15> NOPx86: just ask, dont ask for help.. <16> nevermind i got it, sorry about that <17> Can someone help my understand how the call stack works, please. I'm a bit confused. <18> I can. <17> Polarina: brilliant. I understand that when a function call is made, a new stack frame is created. This allocates space for the local variables, parameters p***ed to the function and the return address. <17> What I'm not sure about is what the base pointer and frame pointer is used for, nor how the process fits together. <18> Are you making an Operating System or what? <17> learning how compilers work. <18> Compilers, parse code and turn it into ***embly code. :) <17> sure, but what code do they generate? What does the code they generate do? It does what i mentioned, but i dont know the details :) <17> do u know? <3> well compilers could implement/use stacks in different ways <14> rioch_: the calling conventions are compiler specific, and platform specific. if you're doing it in ***embly then you can your own calling convention <19> a nice book called Wrox - Professional ***embly Language - 2005 - (By Laxxuss).pdf...it teachs u this... :D <17> .pdf? lol <19> yeah <19> ebook <18> rioch_: It means you can find this book on p2p. :) <14> rioch_: even with visual studio, if you enable optimizations then you'll end up with different calling conventions, like some values stored in registers before a function call to avoid using the stack.
Return to
#asm or Go to some related
logs:
sarge moodin install bugzilla centOS Unable to access jarfile startup.jar #ati #debian *Warning*: mail() [function.mail SMTP server response: 550 5.7.1 Unable to relay #css #linux #perl uantifier follows nothing in regex
|
|