Listing 12. kernel3.S (output using OUTSB)

#include "runtime.h"

.code16
start:
    mov     $(IO_PORT_PSEUDO_SERIAL), %dx
    cs lea  greeting, %si
    mov     $14, %cx
    cs rep/outsb    // kvm_stat reports only
                    // *one* io_exit using this
    hlt

.align 16
greeting:
    .asciz  "Hello, World!\n"

. = 0xfff0
    ljmp    $0xf000, $start

