gdb kann nicht auf Speicher-Adresse Fehler

hier ist mein disas-code:

   0x0804844d <+0>:     push   %ebp
   0x0804844e <+1>:     mov    %esp,%ebp
   0x08048450 <+3>:     and    $0xfffffff0,%esp
   0x08048453 <+6>:     sub    $0x20,%esp
   0x08048456 <+9>:     movl   $0x8048540,(%esp)
   0x0804845d <+16>:    call   0x8048310 <puts@plt>
   0x08048462 <+21>:    lea    0x1c(%esp),%eax
   0x08048466 <+25>:    mov    %eax,0x4(%esp)
   0x0804846a <+29>:    movl   $0x8048555,(%esp)
   0x08048471 <+36>:    call   0x8048320 <scanf@plt>
   0x08048476 <+41>:    mov    0x1c(%esp),%eax
   0x0804847a <+45>:    cmp    $0x208c,%eax
   0x0804847f <+50>:    jne    0x804848f <main+66>
   0x08048481 <+52>:    movl   $0x8048558,(%esp)
   0x08048488 <+59>:    call   0x8048310 <puts@plt>
   0x0804848d <+64>:    jmp    0x804849b <main+78>
=> 0x0804848f <+66>:    movl   $0x8048569,(%esp)
   0x08048496 <+73>:    call   0x8048310 <puts@plt>
   0x0804849b <+78>:    mov    $0x0,%eax
   0x080484a0 <+83>:    leave  
   0x080484a1 <+84>:    ret 

was ich bin tring zu prüfen, ist $0x208c. Wenn ich Typ x/xw 0x208c es gibt mir wieder Fehler, die sagt Cannot access memory at address 0x208c. Wenn ich Info registriert und Blick auf eax sagt es, dass der Wert, den ich zur Verfügung gestellt. Also im Grunde dieses Programm vergleicht zwei Werte und je nachdem, druckt etwas aus.Das problem ist, dass diese Hausaufgaben von der Universität, und ich hab keinen code. Hoffe, Sie können helfen. Danke.

  • [finger in der Luft], den Sie übergeben, ein illegaler parameter? Du sitzt da, vor dem debugger. Was könnten wir aus der Arbeit, dass Sie das nicht können, vor allem ohne source code? Es ist eine sehr seltsame Zuordnung, die Sie fragt, fix Sachen ohne Quelle...
  • ich endlich herausgefunden, um mit dem print-Anweisung anstelle von x/xw-können Sie bitte erklären, warum print gearbeitet und x nicht?
  • $0x208c ist ein absoluter Wert, kein memory-Adresse!
InformationsquelleAutor Ojs | 2015-05-09
Schreibe einen Kommentar