aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-10-10 12:21:25 -0700
committerH. Peter Anvin <hpa@zytor.com>2008-10-13 12:26:59 -0700
commita122a2566e59c342afa697e442a8c9a8c381b24e (patch)
tree455a414fa4483fde71e03d8d2e76d5b31ccacc24
parent652c3057145a41703e5e817d86b2584db9ab806d (diff)
downloadsyslinux-elf-a122a2566e59c342afa697e442a8c9a8c381b24e.tar.gz
syslinux-elf-a122a2566e59c342afa697e442a8c9a8c381b24e.tar.xz
syslinux-elf-a122a2566e59c342afa697e442a8c9a8c381b24e.zip
memdisk: fix up new e820 code
Correct the assembly portion of the new e820 code, which had been left, in effect, half finished. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--memdisk/memdisk.asm6
1 files changed, 3 insertions, 3 deletions
diff --git a/memdisk/memdisk.asm b/memdisk/memdisk.asm
index 47b55fce..f1e463b5 100644
--- a/memdisk/memdisk.asm
+++ b/memdisk/memdisk.asm
@@ -553,22 +553,22 @@ int15_e820:
mov [es:di+20],eax
mov ecx,24 ; Bytes loaded
.no_extattr:
- push ecx
mov eax,[bx-16] ; Start addr (low)
+ mov edx,[bx-12] ; Start addr (high)
mov [es:di],eax
- mov ecx,[bx-12] ; Start addr (high)
mov [es:di+4],edx
mov eax,[bx] ; End addr (low)
mov edx,[bx+4] ; End addr (high)
sub eax,[bx-16] ; Derive the length
sbb edx,[bx-12]
mov [es:di+8],eax ; Length (low)
- mov [es:di+12],ecx ; Length (high)
+ mov [es:di+12],edx ; Length (high)
cmp dword [bx+8],-1 ; Type of next = end?
jne .notdone
xor ebx,ebx ; Done with table
.notdone:
pop eax ; "SMAP"
+ mov edx,eax ; Some systems expect eax = edx = SMAP
pop ds
int15_success:
mov byte [bp+6], 02h ; Clear CF