From 9d2859957408b4c719760a7073e54cd3729561f6 Mon Sep 17 00:00:00 2001 From: johannst Date: Tue, 1 Jun 2021 22:53:52 +0200 Subject: adapted examples with new exit reasons --- guest/guest16.S | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'guest/guest16.S') diff --git a/guest/guest16.S b/guest/guest16.S index 4851694..9877ea9 100644 --- a/guest/guest16.S +++ b/guest/guest16.S @@ -6,11 +6,19 @@ mov dx, 0x1000 // Output port. lea si, [msg] // Address of string. mov cx, [msg_len] // Len of string. - rep outsb // Write ds:si to output port dx. + rep outsb // Write byte from ds:si to output port dx. - // Trigger `KVM_EXIT_MMIO` by writing to non mapped physical address. + // Trigger `KVM_EXIT_IO:KVM_EXIT_IO_IN` by reading byte to memory from input port. + mov dx, 0x1000 // Input port. + lea di, [in_dest] // Destination address. + insb // Read byte from input port dx to ds:di. + + // Trigger `KVM_EXIT_MMIO (w)` by writing to non mapped physical address. mov byte ptr ds:[0x2000], 0xaa + // Trigger `KVM_EXIT_MMIO (r)` by reading from non mapped physical address. + mov al, byte ptr ds:[0x2000] + // Trigger `KVM_EXIT_HLT`. hlt @@ -19,3 +27,6 @@ msg: .asciz "Hello from Real Mode!\n" msg_len: .2byte .-msg + +in_dest: + .byte 0x00 -- cgit v1.2.3