Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисуем флаг Польши в Turbo Pascal и Free Pascal, Не получается вывести флаг в Free Pascal 
:(
    Опции темы
Sectoid
Дата 4.4.2016, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Код

Program FLAG_POLSHA;
BEGIN
asm
   mov ax,0B800h
   mov es,ax
   mov di,0
   mov bx,4000
   mov al,0
   mov ah,0
   mov cx,bx
@1:
   mov es:[di],ax
   add di,2
   loop @1
{}
 mov ax,0B800h
 mov es,ax
 mov di,0
{ mov al,0
 mov ah,0
 mov cx,2000
@1:mov es:[di],ax
 add di,2
 loop @1
 mov ah,10h
 int 16h}
 mov al,0
 mov ah,255
 mov cx,400
@2:mov es:[di],ax
 add di,2
 loop @2
 mov ah,10h
 {int 16h}
 mov al,0
 mov ah,192
 mov cx,400
@3:mov es:[di],ax
 add di,2
 loop @3
 mov ah,10h
 int 16h
{ int 20h}
end;
END

.
 smile 
PM MAIL   Вверх
Sectoid
Дата 4.4.2016, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Код

Program FLAG;
begin
asm
 mov eax,0B800h
 mov esi,eax
 mov edi,0
 mov eax,0
 mov edx,0
 mov ecx,80
@1:mov esi:[edi],eax
 {mov es,ax}
 add edi,2
 loop @1
{ mov eax,16
 mov edx,0
 mov ebx,65
 mov ecx,80
@2:mov es:[edi],eax
 {mov esi,eax}
{ add edi,2}
{ loop @2
 mov eax,16}
 {int 16h}
{ mov ebx,0
 mov edx,224
 mov ecx,80
@3:mov esi:[edi],ax
 add edi,2
 loop @3
 mov eax,16}
 int 32
end
end.


P.S:

Не работает что-то ...

  smile 
PM MAIL   Вверх
Sectoid
Дата 4.4.2016, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Код

Ругань компилятора идёт на первую инструкцию

PM MAIL   Вверх
Sectoid
Дата 5.4.2016, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Первый пример работает. Не работает второй пример, а именно компилятор ругается на первую инструкцию ... >П-О-М-О-Г-И-Т-Е _ 
PM MAIL   Вверх
GLX
Дата 6.4.2016, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 30.3.2011

Репутация: нет
Всего: нет



Здравствуй, Sectoid.
Согласен, первый пример работает.
Но почему нужно делать вывод флага на ассемблере ? Что ты от этого выигрываешь ? Производительность ?

Помнишь, главное правило оборонки СССР ? Делай проще !

Код

program DRUGAYA_RUSSIA;
uses graph,crt;
var
i,j:integer;
vga,vgahi:integer;
Label
Label1,Label2;
BEGIN
InitGraph(vga, vgahi ,'c:\prg\bp\bgi');
For i:=1 to 1280 Do
   begin
   For j:=1 to 340 Do
      begin
      PutPixel(i,j,0);
      end;
   end;
For i:=1 to 1280 Do
   begin
   For j:=341 to 681 Do
      begin
      PutPixel(i,j,14);
      end;
   end;
For i:=1 to 1280 Do
   begin
   For j:=682 to 1022 Do
      begin
      PutPixel(i,j,7);
      end;
   end;
Label1:
If KeyPressed=true then goto label2 else GOTO Label1;
GOTO label1;
Label2:
Closegraph;
end.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.1235 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.