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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2010, 20:13   #1
Linkoln
 
Аватар для Linkoln
 
Регистрация: 05.07.2009
Сообщений: 9
По умолчанию BIOS (Borland 3.1)

Привет всем). Вновь возникают траблы при попытке прописать нормально код в этой программе. А точнее, проверить правильность...

Вот что я сделал:


Задание следующее: 1)Прописать в мэйне одну soubroutine, которая называется window, которая выполняет заливку окошка в центре экрана.(красным цветом). 2)Прописать ещё одну soubroutine, названную write, которая в сделанном ранее красном окне выполняет заливку одной полоски по центру другим цветом.

00000000000000000000000000000000000 00000
0000000000000000000000000000000000000000 //фон центрального окошка - красный
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000 //полоска по центру этого окна - белая
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
00000000000000000000000000000000000 00000


Код:
public _main
   .MODEL
   .STACK 100h

BLACK    EQU  00H                // функцией EQU даём разным цветам(словам) значения 00H, 01Н и т.д.
BLUE      EQU  01H
GREEN    EQU  02H
RED        EQU  03H
YELLOW  EQU  04H
WHITE    EQU  05H

   .DATA
   .CODE

_main PROC            
   mov bh, RED*16                //заливаем фон красным            
   mov cx,10                         //выполнится 10 циклов
   call window                       //вызываем две soubrutine 
   call write


window: 
   mov ah,06H                      //в ah записываем номер сервиса - 06
   mov al,10                         //подсервис 10
   mov bh, RED*16                //фон - красный
   mov ch,5                         //начальная строка - 5
   mov cl,20                        //начальная колонна - 20
   mov dh,10                       //конечная строка - 10
   mov dl,50                        //конечная колонна - 50
   int 10H                

write:
   mov ah,13H
   mov al,10
   mov bh, WHITE*16+RED       
   mov ch,7
   mov dh,8
   mov cl,20
   mov dl,50
   int 10H

   mov ah,4ch
   int 21h
_main ENDP
   END


1).Правильно ли я прописал код? Как в компиляторе проверить это?

Сначала запускаю Turbo Debugger

2) Затем появляется следующее окно:

в котором я не знаю что делать....знаю что надо нажимать f7, но саму суть уловить не могу...
помогите пожалуйста
Linkoln вне форума Ответить с цитированием
Старый 01.05.2010, 21:36   #2
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

вообще то получается только синий прямоугольник..
попробуй прогнать программу в emu8086 - я не смотрел где там ошибки (незнаю как у борланда, но в листингах ассемблерных вроде как комментарии пишутся после ; а не после // )
в любом случае emu8086 компилит и запускает программу нормально - там есть встроенный отладчик и вообще все-все
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 02.05.2010, 14:26   #3
Linkoln
 
Аватар для Linkoln
 
Регистрация: 05.07.2009
Сообщений: 9
По умолчанию

спасибо огромное!!!!!)
теперь другая проблема..
мне показывает ошибку в первой строке этой програмки:

Код:
public _main  
   .MODEL small
   .STACK 100h 
   
NERO    EQU 00H    
BLU     EQU 01H
VERDE   EQU 02H
AZZURRO EQU 03H
ROSSO   EQU 04H
MAGENTA EQU 05H
GIALLO  EQU 06H
BIANCO  EQU 07H
   .DATA
   .CODE
   
_main PROC
  mov ah,06h
  mov al,10
  mov bh,ROSSO*16
  mov ch,5
  mov dh,10
  mov dl,50
  mov cl,20
  int 10H
  
  mov ah,4ch
  int 21h
        
_main ENDP
  END
тоесть illegal instruction public _main
кто нибудь знает из-за чего это?
Linkoln вне форума Ответить с цитированием
Старый 02.05.2010, 14:47   #4
Linkoln
 
Аватар для Linkoln
 
Регистрация: 05.07.2009
Сообщений: 9
По умолчанию

И ещё один вопросик....почему когда в программе ему8086 я запускаю прописанный код, то окошко появляется на секунду, а потом исчезает?
можно как нибудьт сделать так, чтобы оно не исчезало?
Linkoln вне форума Ответить с цитированием
Старый 03.05.2010, 20:34   #5
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

1.public не есть ассемблерная директива - эту строку из исходника надобно саовсем исключить
2.Трассируйте в пошаговом режиме SingleStep графическая кнопка (Button)или кнопкой F8 на клавиатуре - тогда инструкции будут выполняться одна за другой. Как я понял вы сразу жмете Run и программа исполняется от начала до конца.
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 03.05.2010, 20:34   #6
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

1.public не есть ассемблерная директива - эту строку из исходника надобно совсем исключить
2.Трассируйте в пошаговом режиме SingleStep графическая кнопка (Button)или кнопкой F8 на клавиатуре - тогда инструкции будут выполняться одна за другой. Как я понял вы сразу жмете Run и программа исполняется от начала до конца.
Нет, ну правда..

Последний раз редактировалось yuran666666; 03.05.2010 в 20:37.
yuran666666 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как к BIOS обращаться. Нужно чтение/запись BIOS. Dethon_ASM_Scarel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 26.10.2011 11:40
не могу запустить ехешник ,Borland 5 и Borland 6 error_13 Общие вопросы C/C++ 0 31.01.2010 14:04
Bios Bulatru Компьютерное железо 1 23.08.2009 21:43
BIOS smileman Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 24.05.2009 21:29
BIOS smileman Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 16 16.07.2008 14:54