User Tag List

Показано с 1 по 10 из 111

Тема: Кросскомпилятор Си под 8080

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Переписал арифметику с нуля. Вместо временных переменных используется стек.

    Код:
      ; dest = (uchar*)(0xE1D5 + x + y*78);
      ld hl, (print_x)
      ld h, 0
      ld de, 57813
      add hl, de
      push hl
      ld d, 78
      ld a, (print_y)
      call mul_uchar
      pop de
      add hl, de
      ld (print_dest), hl
    Основной код пока выглядит еще не очень. Нужно сделать хранение заначений в регистре BC и доделать сравнение (команда CP вместо вызова call e_uchar). И for парсить нелинейно, что бы код был линейным

    Код:
    main_i ds 1
    main_x ds 1
    main_buf ds 32
    
    main:
      ; clrscr();
      call clrscr
      ; print(0, 0, "HELLO");
      xor a
      ld (print_x), a
      ld (print_y), a
      ld hl, string0
      call print
      ; itoa(buf, 123);
      ld hl, main_buf
      ld (itoa_str), hl
      ld hl, 123
      call itoa
      ; print(1, 1, buf);
      ld a, 1
      ld (print_x), a
      ld (print_y), a
      ld hl, main_buf
      call print
      ; i = 5;
      ld a, 5
      ld (main_i), a
      ; for(x=0; x<64; x+=16) {
      xor a
      ld (main_x), a
    l10:
      ld d, 64
      ld a, (main_x)
      call l_uchar
      or a
      jp z, l11
      jp l12
    l13:
      ld a, (main_x)
      add 16
      ld (main_x), a
      jp l10
    l12:
      ; print(x, i, "12345678.123");
      ld a, (main_x)
      ld (print_x), a
      ld a, (main_i)
      ld (print_y), a
      ld hl, string1
      call print
      ; }
      jp l13
    l11:
      ; while(1) {
    l14:
      ; if(getch() == '1') clrscr();
      call getch
      ld d, 49
      call e_uchar
      or a
      jp z, l16
      call clrscr
    l16:
      jp l14
    l15:
    l9:
      ret
    ;----------------------------------
    string1 db "12345678.123",0
    string0 db "HELLO",0


    ---------- Post added at 23:56 ---------- Previous post was at 22:47 ----------

    1500 строк, 45 Кб
    Последний раз редактировалось vinxru; 13.09.2012 в 11:44.

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

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

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

Похожие темы

  1. Ассемблер 8080
    от Kakos_nonos в разделе Утилиты
    Ответов: 0
    Последнее: 21.09.2011, 23:35
  2. Продам пару платок с процами 8080
    от RedLine в разделе Барахолка (архив)
    Ответов: 15
    Последнее: 23.12.2010, 18:39
  3. схема АОН на 8080/z80
    от sergey2b в разделе Разный софт
    Ответов: 7
    Последнее: 07.02.2010, 22:43
  4. An 8080/Z80 C Compiler
    от breeze в разделе Программирование
    Ответов: 1
    Последнее: 18.08.2005, 06:54

Ваши права

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