x86-16

What is causing this bootloader to fail on hardware but not in DOSBOX? It displays all registers

时光毁灭记忆、已成空白 提交于 2020-12-11 08:53:29
问题 I recently wrote an x86 'bootloader' program that shows the values of the hardware registers after the BIOS jumps to my program. For the purpose of testing, I set the AX register to a known value to ensure that the program runs correctly. BITS 16 %macro pad 1-2 0 times %1 - ($ - $$) db %2 %endmacro [org 0x7C00] CLD ; clear direction flag (forward direction) CLI ; clear interrupt flag (disable interrupts, opposite of 65xx) MOV [0x8000], AX ; display all registers, MOV [0x8004], BX ; including

MASM: How to resolve Immediate mode Illegal in 8086 programming?

|▌冷眼眸甩不掉的悲伤 提交于 2020-11-29 10:00:47
问题 I am solving a fundamental question of Assembly Language Programming to add BCD numbers and two ASCII numbers, for that I got that I have to use DAA and AAA instructions respectively, Now I am trying to store the result stored in AX register into my desirable memory location, but not getting that why the following code is giving me error Immediate mode Illegal Below is the code that I have coded till now, please help me that how to eradicate this error PS: I want to move my result into my