IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Assembler, 4 задания
virgo
сообщение Jan 11 2006, 16:45
Сообщение #1


Гость
*

Группа: Members
Сообщений: 34
Регистрация: 25.10.2005
Пользователь №: 1087
Пол: Мужской



1.Записать все отрицательные числа их модулями.Массив Byte;
2.x=3*(a-4b)+c/4;
3.x=3a+(b+5)/2-c-1;
4.Дан массив из 10байт,подсчитать кол-во единиц во всех разрядах кратных 3,т.е.3,6,9,...,75,78.

С меня пиво.
Go to the top of the page
 
+Quote Post
ALXR
сообщение Jan 11 2006, 18:10
Сообщение #2


Programmator
******

Группа: Members
Сообщений: 591
Регистрация: 21.4.2005
Пользователь №: 18



Ну и где задания-то? Отрицательных чисел бесконечное множество и в массив Byte они не влезут. Что требуется во 2-ом и 3-ем задании вообще не понятно. А в последнем: для каких целей нужен массив?

Вобщем, конкретики привнеси.
Go to the top of the page
 
+Quote Post
virgo
сообщение Jan 11 2006, 19:36
Сообщение #3


Гость
*

Группа: Members
Сообщений: 34
Регистрация: 25.10.2005
Пользователь №: 1087
Пол: Мужской



Первое и четвертое задания вообще хз, чё препод говорил мне, то я и писал :).
Второе и третье задание выглядят примерно так :) :
AX<----A
AX<----2+(AX)
AX<----(AX)+A
BX<----B
BX<----5+(BX)...
Текст программы:
data segment
a dw
b dw
c dw
x dw
data end S
code segment
assume:cs:code, ds:data ...
start: mov ax,data
mov dx,ax
mov ax,a
sal ax,1 ...
dec ax
mov x,ax
quit: mov ax, 4c00h
int 21h
code end S
end start.

Типо того. Я в етом ассемблере ни бельмес :).
Задачки эти не к спеху, до завтрашнего дня точно. Прсто ещё хз договорюсь с преподом или нет.
Go to the top of the page
 
+Quote Post
Palkan
сообщение Aug 3 2006, 17:20
Сообщение #4


Старожил
*******

Группа: Moderators
Сообщений: 806
Регистрация: 21.4.2005
Из: The Deepest Forest
Пользователь №: 82
Имя: Canis Rufus
Провайдер: Port13.Ru



В продолжение темы..
на ПИК16 нужно сделать умножение и деление 2х 3х-байтовых целых чисел без знака (числа положительные, целые)..
Есть алгоритм (вчера придуманный) для беззнакового деления 8/8.. Его можно без проблемм расширить до 24бит, но хотелось-бы увидеть возможно более оптимальные варианты..

Варианты для других процессоров принимаются, но с комментариями при условии что имеются только комманды сдвига (через C), сложения и вычитания.

Процессор, для тех кто не знает - 8битный, система комманд - аккумуляторная.. :)

Свой вариант выложу позже - он пока только на бумаге..


--------------------
Дело-то у нас светлое.. Вот только методы темные..
Go to the top of the page
 
+Quote Post
Palkan
сообщение Aug 5 2006, 11:09
Сообщение #5


Старожил
*******

Группа: Moderators
Сообщений: 806
Регистрация: 21.4.2005
Из: The Deepest Forest
Пользователь №: 82
Имя: Canis Rufus
Провайдер: Port13.Ru



Вот мой вариант..
Деление 8/8, легко расширяется до 24/24.. Вот только лучший-ли?
Код
Div8NC                ; Беззнаковое деление 8/8
                    ; делимое - CommonB делитель - W результат - W остаток - CommonВ
    movwf    CommonA
    movlw    0x01
    movwf    MathTemp1; Counter
    clrf    MathTemp2; Частное
_D8N1                ; Сдвиг делителя до упора влево (до первой "единицы")
    btfsc    CommonA, 7
    goto    _D8N2
    bcf        STATUS, C
    rlf        CommonA, f
    incf    MathTemp1, f
    movlw    .9
    subwf    MathTemp1, w
    btfss    STATUS, Z
    goto    _D8N1
    goto    _D8N4
_D8N2                ; Собственно деление
    movf    CommonA, w
    subwf    CommonB, f
    rlf        MathTemp2, f; записываем единицу (или ноль) в результат
    btfsc    MathTemp2, 0
    goto    _D8N3
    movf    CommonA, w; если в результат записан 0, то восстанавливаем остаток
      addwf    CommonB, f
_D8N3
    bcf        STATUS, C
    rrf        CommonA, f
    decfsz    MathTemp1, f
    goto    _D8N2
_D8N4
    movf    MathTemp2, w
retfie


--------------------
Дело-то у нас светлое.. Вот только методы темные..
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 17th October 2019 - 14:01