Printing a hex dump of the tftp_open cmd
This commit is contained in:
parent
093969301e
commit
cdfef627fa
1 changed files with 81 additions and 14 deletions
95
lboot.S
95
lboot.S
|
|
@ -59,6 +59,8 @@ _start: cli
|
|||
|
||||
call init_com1
|
||||
|
||||
mov $msg_start, %si
|
||||
call print
|
||||
mov $msg_start, %si
|
||||
call print
|
||||
|
||||
|
|
@ -352,6 +354,13 @@ tftp_open: push %ecx
|
|||
push server_ip+2
|
||||
push server_ip
|
||||
push $0
|
||||
|
||||
mov %ss, %esi
|
||||
shl $4, %esi
|
||||
add %esp, %esi
|
||||
mov $128, %ecx
|
||||
call dump
|
||||
|
||||
pxe_call PXE_TFTP_OPEN
|
||||
|
||||
leave
|
||||
|
|
@ -400,33 +409,91 @@ out_of_mem: mov $msg_memerr, %si
|
|||
|
||||
// print: print NUL-terminated string pointed to by SI
|
||||
print: push %eax
|
||||
push %si
|
||||
push %bp
|
||||
mov %sp, %bp
|
||||
1: lodsb
|
||||
or %al, %al
|
||||
jz 2f
|
||||
call printch
|
||||
jmp 1b
|
||||
2: leave
|
||||
pop %si
|
||||
pop %eax
|
||||
ret
|
||||
|
||||
printch: push %eax
|
||||
push %ebx
|
||||
push %edx
|
||||
push %ebp
|
||||
|
||||
mov %ax, %bx
|
||||
|
||||
1: mov $COM1+5, %dx
|
||||
inb %dx, %al
|
||||
test $0x20, %al
|
||||
jz 1b
|
||||
|
||||
mov %bx, %ax
|
||||
|
||||
mov $COM1, %dx
|
||||
outb %al, %dx
|
||||
|
||||
xor %bx, %bx
|
||||
mov $0x0E, %ah
|
||||
int $0x10
|
||||
|
||||
pop %ebp
|
||||
pop %edx
|
||||
pop %ebx
|
||||
pop %eax
|
||||
ret
|
||||
|
||||
dump: push %eax
|
||||
push %ebx
|
||||
push %ecx
|
||||
push %edx
|
||||
push %esi
|
||||
push %bp
|
||||
mov %sp, %bp
|
||||
|
||||
xor %bx, %bx
|
||||
xor %dx, %dx
|
||||
|
||||
_prnext: mov $COM1+5, %dx
|
||||
inb %dx, %al
|
||||
test $0x20, %al
|
||||
jz _prnext
|
||||
1: cmp %cx, %dx
|
||||
jae 2f
|
||||
inc %dx
|
||||
|
||||
lodsb
|
||||
or %al, %al
|
||||
jz _prdone
|
||||
addr32 lodsb
|
||||
push %ax
|
||||
mov %al, %bl
|
||||
shr $4, %bx
|
||||
and $0x0F, %bx
|
||||
mov hex_digits(%bx), %al
|
||||
call printch
|
||||
pop %bx
|
||||
and $0x0F, %bx
|
||||
mov hex_digits(%bx), %al
|
||||
call printch
|
||||
|
||||
mov $COM1, %dx
|
||||
outb %al, %dx
|
||||
mov $' ', %al
|
||||
call printch
|
||||
test $0xF, %dx
|
||||
jnz 1b
|
||||
mov $'\r', %al
|
||||
call printch
|
||||
mov $'\n', %al
|
||||
call printch
|
||||
jmp 1b
|
||||
|
||||
mov $0x0E, %ah
|
||||
int $0x10
|
||||
jmp _prnext
|
||||
2: mov $'\r', %al
|
||||
call printch
|
||||
mov $'\n', %al
|
||||
call printch
|
||||
|
||||
_prdone: leave
|
||||
leave
|
||||
pop %esi
|
||||
pop %edx
|
||||
pop %ecx
|
||||
pop %ebx
|
||||
pop %eax
|
||||
ret
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue