1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
| ;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±?
; 32-bit Assembly Example
;
; Empty asm example.
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±?
IDEAL
P386
MODEL FLAT, C
ASSUME cs:_TEXT,ds:FLAT,es:FLAT,fs:FLAT,gs:FLAT
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±?
; CODE
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±?
CODESEG
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°?
; Entry To ASM Code
; In:
; CS - Code Selector Base: 00000000h - Limit: 4G
; DS - Data Selector Base: 00000000h - Limit: 4G
; ES - PSP Selector Base: PSP Seg - Limit: 100h
; FS - ?
; GS - ?
; SS - Data Selector Base: 00000000h - Limit: 4G
; ESP -> STACK segment
; Direction Flag - ?
; Interrupt Flag - ?
;
; All Other Registers Are Undefined!
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°?
start:
sti ; Set The Interrupt Flag
cld ; Clear The Direction Flag
push ds ; Put value of DS register on the stack
pop es ; And write this value to ES
; Your code comes here
mov eax, 4c00h ; AH = 4Ch - Exit To DOS
int 21h ; DOS INT 21h
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±?
; DATA
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±?
DATASEG
; Your data comes here
pal db 0, 0, 0, 63, 63, 63
blockarray db 200 dup(0) /array 20 * 100
blok_I_0 db 0, 1, 0, 0
db 0, 1, 0, 0
db 0, 1, 0, 0
db 0, 1, 0, 0
blok_I_1 db 0, 0, 0, 0
db 1, 1, 1, 1
db 0, 0, 0, 0
db 0, 0, 0, 0
blok_J_0 db 0, 0, 0, 0
db 0, 1, 0, 0
db 0, 1, 1, 1
db 0, 0, 0, 0
blok_J_1 db 0, 1, 1, 0
db 0, 1, 0, 0
db 0, 1, 0, 0
db 0, 0, 0, 0
blok_J_2 db 0, 0, 0, 0
db 1, 1, 1, 0
db 0, 0, 1, 0
db 0, 0, 0, 0
blok_J_3 db 0, 0, 1, 0
db 0, 0, 1, 0
db 0, 1, 1, 0
db 0, 0, 0, 0
blok_O_0 db 0, 0, 0, 0
db 0, 1, 1, 0
db 0, 1, 1, 0
db 0, 0, 0, 0
blok_L_0 db 0, 1, 0, 0
db 0, 1, 0, 0
db 0, 1, 1, 0
db 0, 0, 0, 0
blok_L_1 db 0, 0, 0, 0
db 0, 1, 1, 1
db 0, 1, 0, 0
db 0, 0, 0, 0
blok_L_2 db 0, 1, 1, 0
db 0, 0, 1, 0
db 0, 0, 1, 0
db 0, 0, 0, 0
blok_L_3 db 0, 0, 0, 0
db 0, 0, 1, 0
db 1, 1, 1, 0
db 0, 0, 0, 0
blok_S_0 db 0, 0, 0, 0
db 0, 1, 1, 0
db 1, 1, 0, 0
db 0, 0, 0, 0
blok_S_1 db 0, 1, 0, 0
db 0, 1, 1, 0
db 0, 0, 1, 0
db 0, 0, 0, 0
blok_Z_0 db 0, 0, 0, 0
db 0, 1, 1, 0
db 0, 0, 1, 1
db 0, 0, 0, 0
blok_Z_1 db 0, 0, 1, 0
db 0, 1, 1, 0
db 0, 1, 0, 0
db 0, 0, 0, 0
blok_T_0 db 0, 0, 0, 0
db 0, 1, 1, 1
db 0, 0, 1, 0
db 0, 0, 0, 0
blok_T_1 db 0, 1, 0, 0
db 0, 1, 1, 0
db 0, 1, 0, 0
db 0, 0, 0, 0
blok_T_2 db 0, 0, 0, 0
db 0, 0, 1, 0
db 0, 1, 1, 1
db 0, 0, 0, 0
blok_T_3 db 0, 0, 1, 0
db 0, 1, 1, 0
db 0, 0, 1, 0
db 0, 0, 0, 0
blok_I dd offset blok_I_0, offset blok_I_1, offset blok_I_0, offset blok_I_1
blok_Z dd offset blok_Z_0, offset blok_Z_1, offset blok_Z_0, offset blok_Z_1
blok_S dd offset blok_S_0, offset blok_S_1, offset blok_S_0, offset blok_S_1
blok_L dd offset blok_L_0, offset blok_L_1, offset blok_L_2, offset blok_L_3
blok_T dd offset blok_T_0, offset blok_T_1, offset blok_T_2, offset blok_T_3
blok_J dd offset blok_J_0, offset blok_J_1, offset blok_J_2, offset blok_J_3
blok_O dd offset blok_O_0, offset blok_O_0, offset blok_O_0, offset blok_O_0
blok dd offset blok_I, offset blok_J, offset blok_L, offset blok_O, offset blok_S, offset blok_T, offset blok_Z
curret_block db 1
current_orientation db 0
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±?
; STACK
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±?
STACK 1000h
END start |
Partager