NASM: Data and Bss Examples and Sample Problems: Machine-Level and Systems Programming
NASM: Data and Bss Examples and Sample Problems: Machine-Level and Systems Programming
Examples and
Sample Problems
ICS312
Machine-Level and
Systems Programming
28 bytes
28 bytes
FF FF FF FF FF FE FD FC 00 00 48 65 6C 6C 6F 00 00 00 00 00 00 00 00 00 00 00 00 FE
max
Little Endian
mov eax, 0AABBCCDDh
mov [M1], eax
mov ebx, [M1]
Registers Memory
eax [M1]
ebx
Little Endian
mov eax, 0AABBCCDDh
mov [M1], eax
mov ebx, [M1]
Registers Memory
eax AA BB CC DD
[M1]
ebx
Little Endian
mov eax, 0AABBCCDDh
mov [M1], eax
mov ebx, [M1]
Registers Memory
eax AA BB CC DD
[M1] DD CC BB AA
ebx
Little Endian
mov eax, 0AABBCCDDh
mov [M1], eax
mov ebx, [M1]
Registers Memory
eax AA BB CC DD
[M1] DD CC BB AA
ebx AA BB CC DD
Little Endian
mov eax, 0AABBCCDDh
mov [M1], eax
mov ebx, [M1]
Registers Memory
eax AA BB CC DD
[M1] DD CC BB AA
ebx AA BB CC DD
25 bytes
FD FD FD FD D3 15 36 17 61 64 62 68 00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ED FF
16 bytes
F7 FF FF FF 64 63 62 61 03 00 03 00 03 00 A3 00
var1 var2 a1 wt
(4) (4) (6) (2)
Practice #2
x1 dw -22
msg db “ba”, 0
array times 2 dd 023o
wt dw 0,011b,020o
19 bytes
FF EA 62 61 00 00 00 00 13 00 00 00 13 00 00 00 03 00 10
x1 msg array wt
(2) (3) (8) (6)
Example
Data segment:
L1 db 0AAh, 0BBh
L2 dw 0CCDDh
L3 db 0EEh, 0FFh
Program:
mov eax, [L2]
mov ax, [L3]
mov [L1], eax
00 4F 12 A4 A5 00 61 64 66 00 00 00 00 eax
00 00 00 00 ebx
first second third
(4) (2) (3)
Example
first db 00h, 04Fh, 012h, 0A4h
second dw 165
third db “adf”
00 4F 12 A4 A5 00 61 64 66 xx xx xx xx eax
00 00 00 00 ebx
first second third
(4) (2) (3)
Example
first db 00h, 04Fh, 012h, 0A4h
second dw 165
third db “adf”
00 4F 12 A4 A5 00 61 64 66 xx xx xx xx eax
00 00 00 00 ebx
first second third
(4) (2) (3)
Example
first db 00h, 04Fh, 012h, 0A4h
second dw 165
third db “adf”
00 4F 12 A4 A5 00 61 64 66 xx xx xx xx eax
A5 A4 12 4F ebx
first second third
(4) (2) (3)
Example
first db 00h, 04Fh, 012h, 0A4h
second dw 165
third db “adf”
00 4F 12 A4 4F 12 A4 A5 66 xx xx xx xx eax
A5 A4 12 4F ebx
first second third
(4) (2) (3)
Example
first db 00h, 04Fh, 012h, 0A4h
second dw 165
third db “adf”
00 4F 12 A4 4F 12 09 A5 66 xx xx xx xx eax
A5 A4 12 4F ebx
first second third
(4) (2) (3)
Practice #3
Consider the following program
var1 dd 179
var2 db 0A3h, 017h, 012h
var3 db “bca”
B3 00 00 00 A3 17 12 62 63 61
B3 00 00 00 A3 17 12 62 63 61 xx xx xx xx eax
B3 00 00 00 A3 17 12 62 63 61 xx xx xx xx eax
B3 00 00 00 A3 17 12 62 63 61 xx xx xx xx eax
B3 00 00 00 A3 17 12 62 63 61 xx xx xx xx eax
05 A3 17 12 A3 17 12 62 63 61 xx xx xx xx eax
62 63 61 00 03 00 00 00 12 00 12 00
62 63 61 00 03 00 00 00 12 00 12 00 xx xx xx xx eax
62 63 61 00 03 00 00 00 12 00 12 00 xx xx xx xx eax
xx xx xx xx ebx
var1 var2 var3
(4) (4) (4)
Practice #4
var1 db “b”,”ca”,0
var2 times db 3,0,0,0
var3 times 2 dw 012h
62 63 61 00 03 00 00 00 12 00 12 00 xx xx xx xx eax
xx xx xx xx ebx
var1 var2 var3
(4) (4) (4)
Practice #4
var1 db “b”,”ca”,0
var2 times db 3,0,0,0
var3 times 2 dw 012h
62 63 61 00 03 00 00 00 12 00 12 00 xx xx xx xx eax
xx xx xx xx ebx
var1 var2 var3
(4) (4) (4)
Practice #4
var1 db “b”,”ca”,0
var2 times db 3,0,0,0
var3 times 2 dw 012h
62 63 61 2A 00 00 00 00 12 00 12 00 xx xx xx xx eax
xx xx xx xx ebx
var1 var2 var3
(4) (4) (4)