Hello, This is what I understand: In vl.c code: -In qemu initialization will be create and initialize a table in which there are I/O read/write function corresponding to I/O address. -When emulated devices are inizialited they register IO function in this table, in this way it can be called when an instruction want to access at this address-device right? -These function are called by cpu_write{b|w|l} in case of byte/word/long. I suppose when there is an instruction op-code regards IO there is a mechanism that calls these function. Can you say me where it does this? Thank you Ale