BYTE and SBYTE Data
val0 SBYTE 50h+10h ; integer expression
val1 BYTE 'A' ; character constant
val2 BYTE 255 ; largest unsigned byte
val3 SBYTE -128 ; smallest signed byte
val4 BYTE ? ; space allocated but not the value
| Each initializer must be an 8-bit integer expression or character constant. |
|
| 0 + (–10) | 0 + 246 | BYTE: (–10) + 20 |
.data X BYTE -10 .code sub eax, eax add al, X call DumpRegs |
.data X BYTE 246 .code sub eax, eax add al, X call DumpRegs |
.data X BYTE -10 Y BYTE 20 .code sub eax, eax add al, X add al, Y call WriteInt |
| Output | Output | Output |
SBYTE: (–10) + 20 |
SBYTE: 10 + (–20) |
MOVSX: 10 + (–20) |
.data X SBYTE -10 Y SBYTE 20 .code sub eax, eax add al, X add al, Y call WriteInt |
.data X SBYTE 10 Y SBYTE -20 .code sub eax, eax add al, X add al, Y call WriteInt |
.data X SBYTE 10 Y SBYTE -20 .code sub eax, eax add al, X add al, Y movsx eax, al call WriteInt |
| Output | Output | Output |