люди обьясните!

  • Автор темы killbios
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

killbios

#1
усем доброго дня суток..!!!

тока начинаю учить асм....а именно графические его возможности.....
нужна программка которая рисует линию....

хочу посмотреть, как это работает, шоб потом над ней поиздеватса...
*(только желательно, что бы она полная была и код под дОС)


заранее сенкс!!!!
 
K

killbios

#3
пасиба..за ссылочку, посмотрел но разбралса не доконца...
как я понял, то там графика вызываетса из готовой ф-ии....

напр: Used to draw simple lines (0 and 45 degrees in 4 quadrants). Called from GrLine.c

это мне пока не понятно......мне с простенького - типа когда так прога начинаетса:
.model small
.stack 100h
.Data

))
 
H

Hex_Vulture

#4
ну смотри, тут был пост про графу на асме, в чем ссуть.

; вызовем 320x200 графический режим
mov ax,0013h
int 10h

а дальше в буффер по адресу 0A000h кладешь байты - это рисование в буффер.

>>Used to draw simple lines (0 and 45 degrees in 4 quadrants). Called from GrLine.c
ну это видимо чувак вызывает процедуру из GrLine.c, но тебе -то на это наплевать.
просто вызови ее из своей программы, ну хоть что-нибудь работающее у тебя есть?


тока у него там VGASEG EQU 0a000H а не 0A000h - ну попробуй и так и так(может у него режим другой), я не специалист по DOS, но по крайней мере с 0A000h у меня точно работает.
 
K

killbios

#5
народ!! помогите доделать прогу - дальше у мя мозгов не хватает....((

надо чтобы по очередности зажигалсь каждые из этих четырехугольгиков - сначала верхний, далее он тухнет и загораетса нижнийи так далее......это должно происходить в один момент - один горит, второй - нет....

заранее спасиба


вот код:

.286; dlia komand shl,shr
JUMPS
ASSUME CS:_CODE,DS:_DATA,SS:_STACK
_STACK SEGMENT PARA STACK 'STACK'
DB 2048 DUP (?)
_STACK ENDS
_DATA SEGMENT PARA PUBLIC 'DATA'
COLORS DB 100*64 DUP(0)
COLOR DB 0
MAX DB 0
X_WIDTH DW 110
_DATA ENDS
_CODE SEGMENT PARA PUBLIC 'CODE'

;===============================================

MOV AX,0013H
INT 10H
;MOV BL,33
WAIT_ESC:
;dec BL
MOV AX,0A000H

;=============nachalo figyri=============

MOV ES,AX
MOV AX,100 ;koordinata x
MOV CX,40;DLINA POLOSKI po gorizontali
MOV DX,50 ;koordinata y
;mov bh,bl
NEXT_I:
mov color,3h
PUSH CX
MOV CX,50; wirina po veriakli
dec ax
PUSH AX
NEXT_J:
CALL PUTPIXEL
dec AX
LOOP NEXT_J
inc dx
POP AX
POP CX
;INC bh ;NA PRAVO
LOOP NEXT_I
mov ah,08h
int 21h

;===============konec pervoi figyri===========

;============Vtoraya figura==============


mov ax,100 ;otstyp 2kvadrata
MOV CX,40;DLINA POLOSKI
MOV DX,50 ;po x
NEXT_L:
mov color,4h
PUSH CX
MOV CX,50; wirina
inc ax
PUSH AX
NEXT_K:
CALL PUTPIXEL
dec AX
LOOP NEXT_K
inc dX
POP AX
POP CX
;dec bh
LOOP NEXT_L
mov ah,08h
int 21h

;===============konec 2oi figuri=======================

IN AL,60H
CMP AL,1
JNE WAIT_ESC
;YSTANOVKA REGIMA CEKLICHESKOGO SDVIGA
MOV AX,0003H
INT 10H
MOV AX,4C00H
INT 21H

;==========================PutPixel===========================

PUTPIXEL PROC NEAR
PUSHA
PUSH dX; zanesti slovo v stek
LEA SI, COLOR;zagryzit efektivnui adres(smewenie)
MOV DX, 320
MUL Dx; ymnogit bez znaka
POP dx; izvlech slovo iz steka
ADD ax,Dx
MOV DI,Ax
MOVSW ;pereslat cepochky slov
POPA
RET
PUTPIXEL ENDP

_CODE ENDS
end


















эта прога рисует 2 4-хугольника с общей стороной....
 
P

progstone

#6
снеси справочник толковй по асму посмотри int10
 
P

progstone

#7
есть два способа поставит точку
1)через int10h видео прерывание
2)непосредственно записью в видеопамять
Ассемблер не язык высокого уровня чтобы в нем была стандартная библиотека для графических примитивов поэтому линия рисуется по точкам.А конкретнее есть метод ЦДА и метод Брезентхема для рисования линии поиши в поисковеке нет напиши мне я тебе солью.
 
Статус
Закрыто для дальнейших ответов.