User Tag List

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

Тема: ABS и SGN в машкоде

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

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

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ABS и SGN в машкоде

    Всем привет.
    Покритикуйте мою реализацию функций ABS и SGN для байта и слова, может можно как-то оптимизировать.
    Байтовый аргумент поступает в регистре L, результат возвращается в нём же. Слова - в паре HL. Таковы соглашения модели вызова __z88dk_fastcall.

    Код:
    /*--------------------------------- Cut here ---------------------------------*/
    signed char Basic_ABS (signed char x) __z88dk_fastcall {
    __asm
        BIT  7,L
        RET  Z
        XOR  A
        SUB  L
        LD   L,A
    __endasm;
    } //Basic_ABS
    
    /*--------------------------------- Cut here ---------------------------------*/
    signed int Basic_ABSI (signed int x) __z88dk_fastcall {
    __asm
        BIT  7,H
        RET  Z
        EX   DE,HL
        XOR  A
        LD   L,A
        LD   H,A
        SBC  HL,DE
    __endasm;
    } //Basic_ABSI
    
    /*--------------------------------- Cut here ---------------------------------*/
    signed char Basic_SGN (signed char x) __z88dk_fastcall {
    __asm
        LD   A,L
        OR   L
        RET  Z
        BIT  7,L
        LD   L,#0xFF
        RET  NZ
        LD   L,#1
    __endasm;
    } //Basic_SGN
    
    /*--------------------------------- Cut here ---------------------------------*/
    signed char Basic_SGNI (signed int x) __z88dk_fastcall {
    __asm
        LD   A,H
        OR   L
        RET  Z
        BIT  7,H
        LD   L,#0xFF
        RET  NZ
        LD   L,#1
    __endasm;
    } //Basic_SGNI

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

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

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

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

Похожие темы

  1. как поставить функцию ABS, USR?
    от REMR в разделе Для начинающих
    Ответов: 1
    Последнее: 04.01.2010, 19:30

Ваши права

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