diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-10-10 12:21:25 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-10-13 12:26:59 -0700 |
commit | a122a2566e59c342afa697e442a8c9a8c381b24e (patch) | |
tree | 455a414fa4483fde71e03d8d2e76d5b31ccacc24 /memdisk | |
parent | 652c3057145a41703e5e817d86b2584db9ab806d (diff) | |
download | syslinux-a122a2566e59c342afa697e442a8c9a8c381b24e.tar.gz |
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>
Diffstat (limited to 'memdisk')
-rw-r--r-- | memdisk/memdisk.asm | 6 |
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 |