Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2013, 21:21   #1
kolo6awka
Новичок
Джуниор
 
Регистрация: 22.12.2013
Сообщений: 1
По умолчанию Игра "Жизнь" на Assembler

Есть код, но нужно его модифицировать так, чтобы он работала в режиме VGA 320x200.
Примечание: Для буфера необходимо использовать другой сегмент, в один вы просто не уместитесь. Для этого используйте регистр дополнительного сегмента ES. Он заполняется также как и DS
mov bx,0B800h
mov es,bx
Но в последствии вы можете использовать такую конструкцию ES:[BX] для обращения к нему. Пример:
mov word ptr es:[bx],0C03h
Цитата:
.model tiny
code segment
org 100h
start:
mov bx,0B800h
mov ds,bx

mov bx,0
mov cx,80*25*2
clear:
mov word ptr [bx],0
add bx,2
loop clear

mov bx,12*80*2+36*2
mov word ptr [bx],0C03h

mov bx,12*80*2+40*2
mov word ptr [bx],0C03h
mov bx,12*80*2+41*2
mov word ptr [bx],0C03h
mov bx,12*80*2+42*2
mov word ptr [bx],0C03h

mov bx,13*80*2+36*2
mov word ptr [bx],0C03h
mov bx,13*80*2+37*2
mov word ptr [bx],0C03h
mov bx,13*80*2+38*2
mov word ptr [bx],0C03h

mov bx,13*80*2+41*2
mov word ptr [bx],0C03h

mov bx,14*80*2+37*2
mov word ptr [bx],0C03h

mov ah,08h
int 21h

inf:
mov ah,06h
mov dl,0FFh
int 21h
jnz endpr

mov bx,0
mov cx,80*25
tick:
mov dl,0

mov ax,word ptr [bx + 2 - 160]
add dl,al

mov ax,word ptr [bx - 160]
add dl,al

mov ax,word ptr [bx - 2 - 160]
add dl,al

mov ax,word ptr [bx + 2]
add dl,al

mov ax,word ptr [bx - 2]
add dl,al

mov ax,word ptr [160 + bx + 2]
add dl,al

mov ax,word ptr [160 + bx]
add dl,al

mov ax,word ptr [160 + bx - 2]
add dl,al

cmp dl, 2 * 03h
jl skip
jg more2
mov ax, word ptr [bx]
mov word ptr [80*25*2 + 80*25*2 + bx], ax
jmp skip
more2:
cmp dl, 3 * 03h
je new
mov word ptr [80*25*2 + 80*25*2 + bx], 0
jmp skip
new:
mov word ptr [80*25*2 + 80*25*2 + bx], 0C03h
skip:
add bx,2
loop tick

mov bx,0
mov cx,80*25
copybuf:
mov ax, word ptr [80*25*2 + 80*25*2 + bx]
mov word ptr [80*25*2 + 80*25*2 + bx], 0
mov word ptr [bx],ax
add bx,2
loop copybuf
jmp inf

endpr:
mov ax,4C00h
int 21h

code ends
end start
kolo6awka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра "Жизнь" на C++, console application zoluxa Общие вопросы C/C++ 11 16.11.2012 17:47
Игра "Жизнь" Lucky777 Помощь студентам 0 30.11.2011 18:54
игра "Жизнь" Lucky777 Помощь студентам 0 14.11.2011 17:38
игра "жизнь" с++ Dashka13 Помощь студентам 0 29.05.2011 16:42
Assembler.Игра "змейка". Пупкин Помощь студентам 0 27.05.2010 00:08