Важная информация

User Tag List

Страница 72 из 109 ПерваяПервая ... 686970717273747576 ... ПоследняяПоследняя
Показано с 711 по 720 из 1084

Тема: ЭТЮДЫ

  1. #711
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,800
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    86 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Шынни Посмотреть сообщение
    непонятно(
    Всё просто - вместо того чтоб делать CP D или SUB D - юзается не прямой делитель, а с обратным знаком.
    Классический алгоритм (без NEG):
    Код:
    	DUP 8
    		RLA
    		SUB D
    		JP NC,1F
    		ADD A,D
    1		RL H
    	EDUP
    Даст правильный ответ, но в инверсном виде, т.е. после всего надо ещё делать LD A,H:CPL:LD H,A (почему так - лучше разобратся как происходит двоичное деление)
    А если делитель инвертировать - то заменой SUB/ADD/JP - можно добится что флаг С сразу будет выставлятся "наоборот".
    На понимание этого и эксперименты я потратил пару дней (в свободные минуты на работе)
    Вообще изначально код из статьи был этот:
    Код:
    1.1 Пример_простейшей_процедуры_деления:
    
    НА ВХОДЕ : C = Делимое, В = Делитель
    НА ВЫХОДЕ: L = результат, A = остаток
    
      ;L=C/B:
    DIVIS   XOR A ;обнуление  текущего  остатка 
    DIVIS2  LD L,#01 ;счетчик (сдвиг 8 раз) 
    D1 RL C ;чтение текущего разряда 
     RLA ;накопитель разрядов 
     CP B ;какой результат текущего разряда 
     JR C,ZER ;переход,если текущий разряд=0 
     SUB B ;тек.разряд=1,снятие с накопителя 
     SLI L ;занесение разряда=1 
     JR NC,D1 ;переход,если счетчик не переполнился 
     RET ;выход 
     ZER SLA L ;занесение разряда=0  
     JR NC,D1 ;переход,если счетчик не переполнился 
     RET ;выход
    Последний раз редактировалось Destr; 09.02.2018 в 10:28.

  2. #712
    Master
    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    714
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    40
    Поблагодарили
    31 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Destr красава, особенно полезно для 8 бит результата плюс остаток.
    Небольшой макрос для вычисления адреса в пиксельном экрана познакоместно. Раньше мучался, сейчас использую постоянно.
    Код:
    			macro	at x,y
    			db	(y&0x07)*0x20+x
    			db	(y&0x18)+0x40
    			endm

  3. #713
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,800
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    86 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Небольшой макрос для вычисления адреса в пиксельном экрана познакоместно
    Это где такое возможно???
    (в подписи: "Лапоть, кроме STORM и sjAsm ничерта не умею")

  4. #714
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,531
    Спасибо Благодарностей отдано 
    913
    Спасибо Благодарностей получено 
    846
    Поблагодарили
    628 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это sjasm
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  5. #715
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    похоже, что х=0..31

  6. #716
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    подсмотрено в FaceBook
    Вложения Вложения
    • Тип файла: zip st.zip (1.8 Кб, Просмотров: 97)

  7. #717
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    встретился интересный алгоритм построения окружностей, близко к Minskytron(PDP1).
    Кто-нибудь сделает на ассемблере?
    Вложения Вложения
    • Тип файла: zip mc.zip (287 байт, Просмотров: 73)

  8. #718
    Activist
    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    477
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Это где такое возможно???
    (в подписи: "Лапоть, кроме STORM и sjAsm ничерта не умею")
    ну чего ж таак сразу, в alasm у меня в свое время тоже были подобные макросы в ассортименте - удобно.
    Последний раз редактировалось Знахарь; 27.04.2018 в 10:48.

  9. #719
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Найдено в некотором блоге:
    Код:
    ;input:
    ;BC=Y.X
    output:
    ;HL=screen address
    
    pixelAddress::  ld      a, b
                    and     %00000111
                    ld      h, a    ; h contains Y2-Y0
                    ld      a, b
                    rra
                    scf             ; set bit 14
                    rra
                    rra
                    ld      l, a    ; l contains Y5-Y3
                    and     %01011000
                    or      h
                    ld      h, a    ; h is complete now
                    ld      a, c    ; divide X by 8
                    rr      l       ; and rotate Y5-Y3 in
                    rra
                    rr      l
                    rra
                    rr      l
                    rra
                    ld      l, a    ; l is complete now
                    ret

  10. #720
    Member Аватар для Vladson
    Регистрация
    14.01.2008
    Адрес
    Эстония, Таллинн
    Сообщений
    177
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    24
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати по поводу круга выше (Minskytron) это всё тот же часто обсуждаемый алгоритм. Ускорить можно тем что отрисовывать сразу 8 точек за одно вычисление, обсуждали его тут много. Вот тут проще понять что к чему (где радиусы итд) circle.zip

    Ну или чтоб не отвлекаться можно и по одному, просто дольше
    Нажмите на изображение для увеличения. 

Название:	circle.png 
Просмотров:	201 
Размер:	628 байт 
ID:	65146

    Кстати количество циклов (два пи эр) на асме можно считать Y / 40
    (256/81 хоть и грубое, но достаточно простое и близкое приближение числа пи)
    Последний раз редактировалось Vladson; 27.04.2018 в 00:59.
    Разрабатываю новый сетевой протокол
    Variable Length Advanced Data Sending Over Network
    Что он будет делать и зачем нужен не знаю, разработал пока только название.

Страница 72 из 109 ПерваяПервая ... 686970717273747576 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Этюды: как бы написать поизящнее.
    от AndTorp в разделе Программирование
    Ответов: 5
    Последнее: 17.03.2008, 00:43
  2. Ответов: 0
    Последнее: 18.08.2006, 22:40
  3. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •