Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Assembler Работа с видеобуфером напрямую: проблема при запуске из командной строки Windows XP (ntvdm) https://www.cyberforum.ru/ assembler-dos/ thread423613.html
Доброго времени суток! Столкнулся с проблемой - взял пример из книги Марек "Ассемблер на примерах" ORG 100h ; directive required for a COM program. pushad ; все пушим MOV AX, 0B800h ; в топор - адрес видеобуфера MOV es, AX ; еs - установлен на видебуфер MOV CL, 'A' ; ставим букву, которую хотим видеть MOV CH, 00000111b ; ставим стиль xor si, si ; si=0...
Assembler Копировать данные из одного файла в другой
помогите написать программу , которая из одного файла скопирует информация (12344) и вставит в другой файл..
Assembler Вывод на экран текстового файла Добрый день, дорогие форумчане CyberForum, помогмте пожалуйста с заданием к программе: имеется сама программа, суть её в том, что программа выводит на экран текстовый файл(текстовый файл должен подаваться в командной строке), должны работать клавиши вверх,вниз,страница вверх и вниз, в конец, в начало. Задача в том, что при выводе текстового файла на экран, в конце каждой строчки должна выводится... https://www.cyberforum.ru/ assembler-dos/ thread419584.html Assembler Ассемблер\Работа с файлами\Поиск в файле\ввод искомого символа с клавиатуры с выводом результата на екран. https://www.cyberforum.ru/ assembler-dos/ thread419281.html
Всем доброго времени суток. проблема то вот в чем: мне необходимо сделать програму,вводишь с клавиатуры искомый символ(-лы),результат выводится на екран(сначала создать .тхт файл,потом идет блок ввода с клавиатуры,непосредственно поиск,вывод результата на екран) я давиче обгрыз зубкова,и вот,что получилось: .model tiny .data handle dw ? path db 'C:\......file01.txt',0 .code
Assembler Написать музыку (набор разных звуков секунд 5-10) при непосредственном управлении динамиком
Написать музыку(набор разных звуков секунд 5-10) при непосредственном управлении динамиком. (код программы с расширением .asm) использовать debug, masm,link.
Assembler Резидентные программы и переменные окружения. https://www.cyberforum.ru/ assembler-dos/ thread411825.html
Всем привет. Скажу сразу что являюсь полным профаном в программировании, но тут недавно понадобилось по учебе ответить на пару вопросов к зачету. Гугл отчасти мне помог, но боюсь ошибиться и не правильно истолковать все преподавателю. Надеюсь тут меня не пошлют назад в гугл, или не отправят учить все самому, просто прошу если кто знает ответ на вопрос, не помогли бы мне? Вот чему надо дать...
Assembler Переопределить прерывание таймера 8h, и каждые 5 секунд загонять в буфер клавиатуры букву 'а' https://www.cyberforum.ru/ assembler-dos/ thread409435.html
Ребята, помогите. Задали задачку на асме. Необходимо переопределить прерывание таймера 8h, и каждые 5 секунд загонять в буфер клавиатуры букву 'а'. Все, что я смогла написать ниже: .model tiny .code .startup .386 jmp main old_int8h_offset dw ? old_int8h_segment dw ?
Работа с видеобуфером: вывести в левый верхний угол экрана свою фамилию Assembler
Вывести в левы верхний угол экрана свою фамилию. все буквы должны быть попарно различны по цвету. Задачу решить путем прямой записи в видеобуфер. Смог написать только с помощью прерывания int 10h. А как сделать путем прямой адресации понятия не имею. Помогите плз оч надо.
Assembler Способы выявления резидента Здравствуйте. Подскажити, какие есть способы выявления резидента в памяти? Я заносил значение в регистр и при повторном запуске проверял, есть ли оно там в данный момент. Вроде есть 4 способа? https://www.cyberforum.ru/ assembler-dos/ thread402780.html Assembler Буфер клавиатуры / посимвольная запись и чтение / tasm https://www.cyberforum.ru/ assembler-dos/ thread401505.html
Здравствуйте, кто может помочь написать программу на assembler? Задача: Ввести с клавиатуры строку. Далее посимвольно строку записывать в буфер клавиатуры, не пользуясь функциями DOS и BIOS. Между выводом символов организовать паузу. Помогите, пожалуйста.
Обработчик прерывания обновляет в центре экрана сообщение "До окончания осталось..." Assembler
Добрый вечер, очень рассчитываю на вашу помощь. Задание такое: Написать программу, имитирующую выполнение каких-либо расчетов, занимающих много времени (например, с помощью многократного вхождения в пустой цикл). При этом обработчик прерывания каждую секунду обновляет в центре экрана сообщение «До окончания осталось (столько-то времени в мин. или сек.)». Время, указываемое в сообщении, –...
Assembler Сосчитать с дискеты 0 физический сектор, вывести на экран https://www.cyberforum.ru/ assembler-dos/ thread399173.html
Помогите решить лабу: Сосчитать с дискеты 0 физический сектор, вывести на экран
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,928
11.01.2012, 20:38 0

Рисование наклонных линий (алгоритм Брезенхема) - Assembler - Ответ 2377355

11.01.2012, 20:38. Показов 6214. Ответов 1
Метки (Все метки)

Ответ

Да сколько ж можно. Называется алгоритм Брезенхема. Несколько дней назад в этом разделе даже код на ассемблере выкладывали.
З.Ы. Пардон, перепутал, там окружность строили.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
;рисование линии по алгоритму Брезенхейма\
line    proc    START_X:word, START_Y:word, END_X:word, END_Y:word, COLOR:word 
uses ax,bx,cx,dx,si,di
local DIAGONAL_Y_INCREMENT:word
local DIAGONAL_X_INCREMENT:word
local SHORT_DISTANCE:word
local STRAIGHT_X_INCREMENT:word
local STRAIGHT_Y_INCREMENT:word
local STRAIGHT_COUNT:word
local DIAGONAL_COUNT:word
        mov ax,START_X          ;если координаты начала и конца совпадают
        cmp ax,END_X
        jnz ris
        mov ax,START_Y          ;если нет - рисовать линию
        cmp ax,END_Y
        jnz ris
        mov dx,ax
        mov cx,START_X
        MOV  AL, byte ptr COLOR
                       mov bh,0
               mov ah,0ch
               int 10h              ;вывести одну  точку
 
        jmp LINE_FINISHED
ris:
;---установка начальных инкрементов для каждой позиции точки
               MOV  CX,1       ;инкремент для оси x
               MOV  DX,1       ;инкремент для оси y
;---вычисление вертикальной дистанции
               MOV  DI,END_Y   ;вычитаем координату начальной
               SUB  DI,START_Y ;точки из координаты конечной
               JGE  KEEP_Y     ;вперед если наклон < 0
               NEG  DX         ;иначе инкремент равен -1
               NEG  DI         ;а дистанция должна быть > 0
KEEP_Y:        MOV  DIAGONAL_Y_INCREMENT,DX
;---вычисление горизонтальной дистанции
               MOV  SI,END_X   ;вычитаем координату начальной
               SUB  SI,START_X ;точки из координаты конечной
               JGE  KEEP_X     ;вперед если наклон < 0
               NEG  CX         ;иначе инкремент равен -1
               NEG  SI         ;а дистанция должна быть > 0
KEEP_X:        MOV  DIAGONAL_X_INCREMENT,CX
;---определяем горизонтальны или вертикальны прямые сегменты
               CMP  SI,DI      ;горизонтальные длиннее?
               JGE  HORZ_SEG   ;если да, то вперед
               MOV  CX,0       ;иначе для прямых x не меняется
               XCHG SI,DI      ;помещаем большее в CX
               JMP  SAVE_VALUES;сохраняем значения
HORZ_SEG:      MOV  DX,0       ;теперь для прямых не меняется y
SAVE_VALUES:   MOV  SHORT_DISTANCE,DI  ;меньшее расстояние
               MOV  STRAIGHT_X_INCREMENT,CX  ;один из них 0,
               MOV  STRAIGHT_Y_INCREMENT,DX  ;а другой - 1.
;---вычисляем выравнивающий фактор
               MOV  AX,SHORT_DISTANCE  ;меньшее расстояние в AX
               SHL  AX,1       ;удваиваем его
               MOV  STRAIGHT_COUNT,AX  ;запоминаем его
               SUB  AX,SI      ;2*меньшее - большее
               MOV  BX,AX      ;запоминаем как счетчик цикла
               SUB  AX,SI      ;2*меньшее - 2*большее
               MOV  DIAGONAL_COUNT,AX  ;запоминаем
;---подготовка к выводу линии
               MOV  CX,START_X ;начальная координата x
               MOV  DX,START_Y ;начальная координата y
               INC  SI         ;прибавляем 1 для конца
               MOV  AL, byte ptr COLOR   ;берем код цвета
;---теперь выводим линию
MAINLOOP:      DEC  SI         ;счетчик для большего расстояния
               JZ   LINE_FINISHED  ;выход после последней точки
               push bx
               mov bh,0
               mov ah,0ch
               int 10h
               pop bx
;               CALL PutPixel
SKIP:          CMP  BX,0       ;если BX < 0, то прямой сегмент
               JGE  DIAGONAL_LINE  ;иначе диагональный сегмент
;---выводим прямые сегменты
               ADD  CX,STRAIGHT_X_INCREMENT  ;определяем инкре-
               ADD  DX,STRAIGHT_Y_INCREMENT  ;менты по осям
               ADD  BX,STRAIGHT_COUNT  ;фактор выравнивания
               JMP  SHORT MAINLOOP  ;на следующую точку
;---выводим диагональные сегменты
DIAGONAL_LINE: ADD  CX,DIAGONAL_X_INCREMENT  ;определяем инкре-
               ADD  DX,DIAGONAL_Y_INCREMENT  ;менты по осям
               ADD  BX,DIAGONAL_COUNT  ;фактор выравнивания
               JMP  SHORT MAINLOOP  ;на следующую точку
LINE_FINISHED:
 
ret
line    endp


Вернуться к обсуждению:
Рисование наклонных линий (алгоритм Брезенхема) Assembler
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2012, 20:38
Готовые ответы и решения:

Алгоритм построения прямых линий Брезенхема (Visual Studio)
Всем привет! Подскажите, пожалуйста, как реализовать &quot;Алгоритм построения прямых линий Брезенхема&quot;...

Рисование дуги (Алгоритм Брезенхема)
Есть функция для рисования дуги (Алгоритм Брезенхема). У меня он принимает (X Y) начальную точку...

Как в цикле нарисовать много наклонных линий?
вот таких палочек с х оси 250 //////чтобы так многг было чтобы не писать много line

Рисование прямой по алгоритму Брезенхема
Добрый день. Мне очень нужен исходник программы, которая рисует прямую по алгоритму Брезенхема....

1
11.01.2012, 20:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2012, 20:38
Помогаю со студенческими работами здесь

Рисование окружности метотом Брезенхема
С помощью свойства Canvas.Pixels написать процедуры рисования линии методом аппроксимации...

Алгоритм Брезенхема
Помогите заменить 1 букву. Тут 1 буква &quot;С&quot;, а надо &quot;Д&quot; &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; ...

Алгоритм Брезенхема
Есть такой код: FOR y=y0 TO y1 POINT x,y,5 err=err+difx IF 2*err&gt;=dify THEN x=x+incr...

Алгоритм Брезенхема
Прошу помочь в вопроссе написания программы. А именно нужно нарисовать в Лазарусе отрезок,по методу...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru