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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2012, 14:05   #1
Iceman_02
Новичок
Джуниор
 
Регистрация: 13.05.2012
Сообщений: 1
Восклицание Переписать под 8086

Вот кусок программы, который нужно переписать под 8086, он написан под 386. Проблема в том, что 8086 не поддерживает расширенные регистры и FS. Здесь реализуется рисование *, которая бегает по экрану.


Код:
new_int1C proc
	pushf
	cmp CS:Num_status, 0
	je @@0
	inc byte ptr CS:heartbeat
	cmp byte ptr CS:heartbeat, 1
	jz @@1
	
	@@0:
		popf
		jmp dword ptr CS:int_1Ch_vector
		
	@@1:
		mov byte ptr CS:heartbeat, 0
		pusha
		push DS
		push ES
		push FS
		call sh_time
		pop FS
		pop ES
		pop DS
		popa
		jmp @@0
		
	sh_time:
		push CS
		pop DS
		push 0B800h
		pop FS
		
	draw:
		lea SI, ballR
		call ball
		
		ret
		
	draw1:
		movzx EAX, [SI+[b].ox]
		movzx EDX, [SI+[b].oy]
		lea EDX, [EDX*4+EDX]
		lea EDX, [EDX*2]
		lea EDX, [EDX*8+EAX]
		rol EDX, 1
		mov AX, [SI+[b].osa]
		mov FS:[EDX], AX
		movzx EAX, [SI+[b].x]
		movzx EDX, [SI+[b].y]
		lea EDX, [EDX*4+EDX]
		lea EDX, [EDX*2]
		lea EDX, [EDX*8+EAX]
		rol EDX, 1
		mov AX, FS:[EDX]
		mov [SI+[b].osa], AX
		mov AL, [SI+[b].s]
		mov AH, [SI+[b].a]
		mov FS:[EDX], AX
		ret
		
	ball:
		mov AL, [SI+[b].x]
		mov [SI+[b].ox], AL
		add AL, [SI+[b]._x]
		jz @b0
		cmp AL, 80
		jb @b1
	@b0:
		neg byte ptr [SI+[b]._x]
	@b1:
		mov [SI+[b].x], AL
		
		mov AL, [SI+[b].y]
		mov [SI+[b].oy], AL
		add AL, [SI+[b]._y]
		jz @b2
		cmp AL, 25
		jb @b3
	@b2:
		neg byte ptr [SI+[b]._y]
	@b3:
		mov [SI+[b].y], AL
		
		call draw1
		ret
	align 2
	ballR: b <0, 0, '*', 12, 2, 1, 0, 0>
	
	
new_int1C endp
Iceman_02 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Переписать под ввод из файла druger Помощь студентам 1 17.12.2011 15:55
переписать исходник под Delphi7 faraon1792 Фриланс 4 25.02.2011 14:12
Переписать исходник под Delphi7 faraon1792 Помощь студентам 1 22.02.2011 15:55
Переписать программку с x86 под x64 PnG Фриланс 6 02.11.2009 11:24