I am new to x86 assembly but been a programmer for nearly 34 years. I am writing a 16 bit OS and everything is working ok to a degree. The program is split into a Bootloader and Kernel Binaries which then joined into a single image file. When running the program through QEMU the Bootloader runs and loads at 0x7c00 fine and displays messages on the screen and successfully loads the Kernel into 0x7e00 and successfully starts the process which clears the screen and sets the cursor in the top left of the screen. However when it then goes to display messages to the screen it fails. When objdumping the Kernel Binary I can see that the binary is set to load the first byte into the SI register at the correct address however nothing happens. Adjusting the address it turns out that the address is being offset by 230-255 bytes after the correct position. I have set all of the segment registers to zero and still makes no difference. Does anyone have any ideas on the cause and fix and if there is anyway of debugging a raw binary file through QEMU. Every link i have looked at only shows how to debug an ELF file through GDB linking into QEMU via a TCP Port.
x86 16-bit Assembly debugging issues with QEMU
488 Views Asked by Lee Bardoe At
0
There are 0 best solutions below
Related Questions in DEBUGGING
- Eclipse find source file from library
- Debug native code in Android Studio
- Breakpoint "concurrency" in Intellij
- PhpStorm IDE. Collapse custom/debug code
- How does one debug infinite recursion in Haskell?
- Android Studio missing exception stacktrace in Logcat
- java FileNotFoundException wont locate a file in the same project
- How can I debug scala.js unit tests?
- Why Eclipse Debugger does not stop on scoped exception breakpoint (how to stop on handled exception)
- Suggestions for my Selection Sort / Java
- Fortran Debugging
- Debug Excel VSTO add-in when launched by double-clicking existing file
- Starting GDB with interpreter mi via .gdbinit file
- How to print call stack in Swift?
- Preventing threads in Xcode
Related Questions in X86
- Why do we need AX instead of MOV DS, data directly with a segment?
- Drawing circles of increasing radius
- Assembly print on screen using pop ecx
- How to add values from vector to each other
- Intel x64 instructions CMPSB/CMPSW/CMPSD/CMPSQ
- Compact implementation of logical AND in x86 assembly
- Can feenableexcept hurt a program performance?
- How do I display the result and remainder in ax and dx in Assembly (tasm)
- ASM : Trouble using int21h on real machine
- jmp instruction *%eax
- What steps are needed to load a second stage bootloader by name on a FAT32 file system in x86 Assembly?
- Assembly code to print a new line string
- Write System Call Argument Registers
- How to jump to an address saved in a register in intel assembly?
- Find middle value of a list
Related Questions in QEMU
- Errors in makefile for qemu 0.14.1 in ubuntu 15.04 64 bit
- Rustc/LLVM generates faulty code for aarch64 with opt-level=0
- Reading contents of a qcow2 image using `bdrv_pread(..)` or alternatives
- How to setup an Android Virtual Device with a data partition larger than 200 MB?
- Missing headers for kernel in bzImage loaded on qemu
- Network Block Device - Receive control failed (result -32) - Kernel 3.16.0-41
- Can't Connect to Pebble Emulator
- Passing struct to main via char* pointer
- What is the equivalent to a VirtualBox setting in Qemu?
- C# Embed QEMU Into panel - how to get/generate QEMU window handle?
- E: Cannot get debconf version. Is debconf installed?
- Pass arguments to ARM program while remotely debugging
- How to automate application installation in virtual machine?
- mount: you must specify the filesystem type
- how to trace guest OS when qemu is run with kvm enabled and cpu is host?
Related Questions in 16-BIT
- What happens if I sum negative values to a 16bit register constantly
- assembly - How to boot kernel that is appended end of kernel?
- How to pass/retrieve DOS command-line parameters in a 16-bit assembly program?
- Indexed float array in NASM x86 16-bit
- 16 bit Assembly not printing character
- Create a 16bit application?
- Delphi - Rumor about run 16-bit assembly writing a sys file on Windows 10
- How do I copy files from a CD-ROM in [Files] using Flags: external?
- what is meant by 32-bit application?
- Timed task list
- can the license information stored in Dongle be taken out of it and stored on a file or something?
- How to do 64 bit multiply on 16 bit machine?
- Can I convert a 16-bit .exe program to a 64-bit .exe?
- Saving as 16-bit .raww ("Raw image format (Word)") in ImageJ or MATLAB to import to DaVis
- Is the Z80 'Game Boy' CPU 8 or 16 bits?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?