1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

графика ассемблера

Тема в разделе "Остальные языки программирования", создана пользователем alexs, 3 май 2007.

Статус темы:
Закрыта.
  1. alexs

    alexs Гость

    Репутация:
    0
    графика ассемблера графика ассемблера получаетса в ассемблере недо нарисовать прямогульник(стандартный - вертикальные стороны меньше горизонтальних) , горизонтальные стороны которого должны как бы провисать вниз....

    если есть какие-то ресурсы такого типа графике, то выложите её плИз!!!
     
  2. Hex_Vulture

    Hex_Vulture Гость

    Репутация:
    0
    Напиши сначала на C. (ну или что больше нравится)

    сделай процедуры vertical_line и bezier_curve (http://alglib.sources.ru/interpolation/beziercurve.php)

    потом перепишешь их постепенно(попробуй юзать встроенный ассемблер) на асм.


    с графикой просто.
    screen_buffer dw 0A000h ; это буффер, рисуй сюда
    ...

    mov ax,0013h ; 320x240ч8 ( 0012h - 640x480 16 color, но у меня не работает)
    int 10h ; после этого вызова должен быть переход в граф. режим


    далее рисуешь так
    mov ax,screen_buffer
    mov es,ax

    mov es:[номер байта в экранном буфере], цвет

    например mov es:[0],00000100b ;(red)

    проект делай для DOS иначе не будет работать.
     
  3. alexs

    alexs Гость

    Репутация:
    0
    спасибо большое, но вот у меня что-то не получаетса......
    можно, если не трудно, поподробнее с графикой в ассме,а именно - нарисовать эту фигуру, потому что я с графическим режимом еще толком не разобралса....
    да, графический режим - 320х200@256...
     
  4. Hex_Vulture

    Hex_Vulture Гость

    Репутация:
    0
    Для: alexs

    а что именно не получается?

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

    вот процедура для вывода прямоугольника, можешь использовать ее для вывода вертикали:

    она осуществляет вывод словами(я подумал так быстрее) поэтому в стек помещай сдвоенный цвет.
    например
    Код:
    push 0
    push 10
    push 200
    push 11
    mov ah,00000100b;(red)
    mov al, 00000100b;(red)
    push ax
    call draw_rectangle
    
    ;должна быть вертикальная линия
    Код:
    ;в data сделай
    rect_x2	dw 0
    _rect_y2	dw 0
    
    _rect_x1	dw 0
    _rect_y1	dw 0
    
    
    ;////////////////////////// draw_rectangle //////////////////////////
    ; соглашение о вызове 
    ; параметры в стек помещать так: color,x1,y1,x2,y2
    draw_rectangle	proc
    push	bp
    mov	bp,sp
    pusha
    
    mov	 ax,screen_buffer
    mov	 es,ax
    
    mov	ax,[bp+4]; color
    
    mov	cx,[bp+6]; y2
    mov	di,[bp+8]; x2
    
    mov	bx,[bp+10]; y
    mov	si,[bp+12]; x
    
    mov	_rect_y2,cx
    imul	di,320
    mov	_rect_x2,di
    
    mov	_rect_y1,bx
    mov	_rect_x1,si
    
    mov	cx,ax
    mov	di,ax
    mov	dx,ax
    
    ;ax,cx,dx,di - color
    imul	si,320
    ; it is possible to add unrolling
    draw_line_seg:
    
    mov	word ptr es:[si+bx+0],ax
    inc	bx
    
    cmp	bx,_rect_y2
    jb	draw_line_seg
    
    add	si,320
    mov	bx,_rect_y1
    
    cmp	si,_rect_x2
    jb	draw_line_seg
    
    popa
    pop	bp
    ret	10
    draw_rectangle	endp
     
  5. alexs

    alexs Гость

    Репутация:
    0
    спасибо еще раз))

    не получаетса нарисовать эту кривую......
    пыталса раздуплить этот алгоритм, но никак не получаетса...
     
  6. Hex_Vulture

    Hex_Vulture Гость

    Репутация:
    0
    ну ты попробуй на C и посмотри что компилятор выдает
    в Visual Studio можно asm посмотреть(там где-то флажок указать и он асм выдает).

    правда там все переменные покривятся именами, но имена подправить не трудно, например для переменной coord будет что-нибудь вроде _coord.........
    Только обязательно тогда надо собирать 16 приложение а то он тебе выдаст 32 разрядный ассемблер.

    кстати поиск кода в гуугле - хорошая вещь
    http://www.google.com/codesearch?hl=ru&amp...;cs_f=4K.ASM#a0

    тока там правда .386 стоит, но ты просто исправь там передачу параметров через стек и все ок будет(если у вас не разрешают .386 ставить)
     
  7. alexs

    alexs Гость

    Репутация:
    0
Загрузка...
Похожие Темы - графика ассемблера
  1. MatthewK
    Ответов:
    0
    Просмотров:
    255
  2. Lers
    Ответов:
    0
    Просмотров:
    1.775
  3. 203
    Ответов:
    2
    Просмотров:
    1.571
Статус темы:
Закрыта.

Поделиться этой страницей