Я кодирую игру в сборочной графике. В игре каждый раз, когда персонаж учил объект, это дает ей больше очков. Я пытаюсь сделать это, а также есть случайные числа, которые будут добавлены к точкам. Дело в том, что dw, а в случайном порядке - db, и я не могу изменить его без уничтожения другого процесса. Что я должен сделать, чтобы изменить его.
dataseg
Clock equ es:6Ch
divisorTable db 10,1,0
randomPoints db ?
pointsMessage db 'points: $'
points dw 0
ten db 10
proc Random7
PushAll
mov ax, 40h
mov es, ax
mov cx, 10
mov bx, 0
mov ax, [Clock] ; read timer counter
mov ah, [byte cs:bx] ; read one byte from memory
xor al, ah ; xor memory and counter
and al, 00000111b ; leave result between 0-15
add [points],al
endp Random7
proc PrintPoints
PushAll
mov dh, 2 ;y location
mov dl, 3 ;x location
mov bh, 0
mov ah, 2
int 10h
mov dx, offset pointsMessage
mov ah,9
int 21h
mov dh, 2;y location
mov dl, 10 ;x location
mov bh, 0
mov ah, 2
int 10h
xor ah,ah
mov al, [points] ;divide counter by 10
div [ten] ;div saves quotient in AL and remainder in AH
add al, '0' ;ASCII code for quotient is value+48('0')
add ah, '0' ;ASCII code for remainder is value+48('0')
push ax ;so value in AH will be saved
mov dl, al ;prints quotient
mov ah,2h
int 21h
pop ax
mov dl, ah ;prints remainder
mov ah,2h
int 21h
PopAll
ret
endp PrintPoints
;----------------------------------------------
;--------------add points----------------------
proc addPoints
add [points],2
ret
endp addPoints
proc subPoints
sub [points] , 3
ret
endp subPoints