diff options
Diffstat (limited to 'subx/ex4.subx')
-rw-r--r-- | subx/ex4.subx | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/subx/ex4.subx b/subx/ex4.subx index af0ef419..2d841a81 100644 --- a/subx/ex4.subx +++ b/subx/ex4.subx @@ -5,37 +5,37 @@ # $ subx run ex4 == 0x08048074 # code segment, after leaving room for ELF header and segment headers -# opcode ModR/M SIB displacement immediate -# instruction mod, reg, Reg/Mem bits scale, index, base -# 1-3 bytes 0/1 byte 0/1 byte 0/1/2/4 bytes 0/1/2/4 bytes +# instruction effective address operand displacement immediate +# op subop mod rm32 base index scale r32 +# 1-3 bytes 0/1/2/4 bytes 0/1/2/4 bytes ## read(stdin, x, 1) # fd = 0 (stdin) - bb 0/imm32 # copy 0 to EBX + bb 0/imm32 # copy 0 to EBX # set location to write to - b9 a7 90 04 08 # copy 0x080490a7 to ECX + b9 0x080490a7/imm32 # copy to ECX # size = 1 character - ba 1/imm32 # copy 1 to EDX + ba 1/imm32 # copy 1 to EDX # syscall = read - b8 3/imm32 # copy 3 to EAX + b8 3/imm32 # copy 3 to EAX # call - cd 128/imm8 # int 80h + cd 128/imm8 # int 80h ## write(stdout, x, 1) # fd = 1 (stdout) - bb 1/imm32 # copy 1 to EBX + bb 1/imm32 # copy 1 to EBX # set location to write to - b9 a7 90 04 08 # copy 0x080490a7 to ECX + b9 0x080490a7/imm32 # copy to ECX # size = 1 character - ba 1/imm32 # copy 1 to EDX + ba 1/imm32 # copy 1 to EDX # syscall = write - b8 4/imm32 # copy 3 to EAX + b8 4/imm32 # copy 4 to EAX # call - cd 128/imm8 # int 80h + cd 128/imm8 # int 80h ## exit(EBX) - b8 1/imm32 # copy 1 to EAX - cd 128/imm8 # int 80h + b8 1/imm32 # copy 1 to EAX + cd 128/imm8 # int 80h == 0x080490a7 00 00 00 00 # space for read() to write to |