Форум Херсона. Форум Херсонской молодежи, флейм, фотографии Херсона, политика в Херсоне, сетевой форум, сети Херсона


Приветствуем на Форум Херсона. Форум Херсонской молодежи..

На данный момент Вы находитесь на форуме как Гость и имеете очень ограниченные возможности и права. Что бы писать или отвечать в темах, загружать картинки, файлы на форуме Вам нужно зарегистрироваться, что совершенно бесплатно. Регистрация очень быстрая, не откладывайте эту процедуру!

Если возникнут проблемы с регистрацией напишите нам.

Галерея форума Блоги пользователей Список банов
Вернуться   Форум Херсона. Форум Херсонской молодежи. > > >
Регистрация СправкаСтатистика Пользователи Календарь Сообщения за день

Программирование Все вопросы по написанию программ

Тема: Assembler Ответить в теме
Ваше имя пользователя: Для входа нажмите здесь
Проверка вопроса системы антиспама "NoSpam!"
4 дабавить 31 и Атнять 4
Image Verification
Пожалуйста, введите шесть букв и/или цифр, которые изображены на картинке.

Заголовок:
  
Сообщение:
Иконки для сообщения
Вы можете выбрать иконку, характеризующую сообщение:
 

Дополнительные опции
Другое

Просмотр темы (Новые вначале)
04.02.2010 19:36
Debian тче?
не знаешь что такое старенькие пики?)
04.02.2010 14:09
Svyrydov да уж
нет слов
29.09.2009 21:44
VoVaN А у вас тут весело, да. Помницца, в студенческие годы, на энной лабе по асму, когда вкрай задолбало выдрокивать всякий гнильчак - решил приколоться. Написал требуемый функционал на сях, откомпилил, дизассемблировал и сдал. Четыре листа мелким шрифтом в две колонки. Первые три десятка инструкций препод честно пытался понять как оно работает. Препод тоже оказался с чувством йумара - понял подвох и предложил объяснить как оно работает.

Так что там, кстати, за проблема? Большой Умный Компьютер числа не складывает?... Эх, топикстартера б засадить писать под старенькие ПИКи ))
29.09.2009 17:30
Lester
Цитата:
Сообщение от Marchello Посмотреть сообщение
А почему тогда не так:
Код:
int res = 1;
while (k--) res *= t;
return res;
потому-что у алгоритма приведенного мной сложность O(lnn), а у твоего O(n)
29.09.2009 17:27
Marchello
Цитата:
Сообщение от Lester Посмотреть сообщение
быстрое возведение в степень вот:
PHP код:
int powerint tint k )
{
  
int res 1;
  while( 
)
  {
     if( 
res *= t;
     
*= t;
     
>>= 1;
  }
  return 
res;

А почему тогда не так:
Код:
int res = 1;
while (k--) res *= t;
return res;
29.09.2009 16:43
Lester
Цитата:
Сообщение от Debian Посмотреть сообщение
ну если ты знаешь другой способ возвеедения числа в степень используя сложение - валяй, а если напоговорить - так эта ва флейм
я х%ею с этого топика - во-первых степень это не сложение n раз, а умножение, во-вторых быстрое возведение в степень вот:
PHP код:
int powerint tint k )
{
  
int res 1;
  while( 
)
  {
     if( 
res *= t;
     
*= t;
     
>>= 1;
  }
  return 
res;

после чего вводим еще одну функцию для умножения через сложение( которая пишется аналогично ), и просто переписываем это все на asm( а код с С на asm переписывается почти строка в строку )
29.09.2009 16:32
EfiR 3 в степени 5 = 243 а не 3+3+3+3+3
29.09.2009 16:16
Debian ну если ты знаешь другой способ возвеедения числа в степень используя сложение - валяй, а если напоговорить - так эта ва флейм
29.09.2009 15:31
EfiR
Цитата:
Сообщение от Debian Посмотреть сообщение
инапоследок расскажу математику как возвести в степерь имея операцию сложения
исходное число прибавляем само к себе столько раз, сколько указанно в показатели степень...
теперь на яблочках
3 в степень 5
результат = 3+3+3+3+3
гениально, рассказал математику.
27.09.2009 16:33
GUN
Цитата:
Сообщение от DastarD Посмотреть сообщение
В машинке и корабелке асемблер не учат, максимум Си...
именно поэтому я по турбо асемблеру писал лабораторки =) навернео с Си спутал....
27.09.2009 13:20
DastarD
Цитата:
Сообщение от TIGR Посмотреть сообщение
та где угодно такое задают)) и в хнту на ряде кафедр и в корабелке и в машинке думаю тож...
В машинке и корабелке асемблер не учат, максимум Си...
27.09.2009 11:16
SilverHawk все я уже сам додумался, а в твое программе есть ошибка: цикл будет продолжатся до бесконечности
26.09.2009 21:35
olegjack После такого намека пора уже за пивом бежать)))
26.09.2009 21:27
Debian пиздец...
убейтесь абстену...

Debian добавил 26.09.2009 в 22:30
Код:
.model small
.stack 100h
b dw 16 ;число с которого находится корень
sqr dw 0 ;метка в которую сохраняется корень .code start: mov ax,@data mov ds,ax mov ax,b ;число, которое уменьшается mov bx,0 ;счетчик корня mov dx,1 ;число, что отнимается sloop: ;начало цикла add ax,dx ;Прибовляйем!!!!!1111!!!1! от ax непарное число inc bx ;увеличиваем счетчик корня на 1 add dx,2 ;увеличиваем непарное число на 2 cmp ax,0 ;сравниваем число которое уменьшается с 0 jns sloop ;если нет знака продолжаем цикл sub bx,1 ;уменьшаем счетчик корня на 1 mov sqr,bx ;сохраняем счетчик в sqr mov dh,ch int 21h end start
Debian добавил 26.09.2009 в 22:34
инапоследок расскажу математику как возвести в степерь имея операцию сложения
исходное число прибавляем само к себе столько раз, сколько указанно в показатели степень...
теперь на яблочках
3 в степень 5
результат = 3+3+3+3+3
................................
26.09.2009 21:19
SilverHawk
Цитата:
Сообщение от olegjack Посмотреть сообщение
Зри псто Дебиана! Ваще sub от add чем-то отличаются?
add это прибавление, sub это отнимание
26.09.2009 20:00
olegjack Зри псто Дебиана! Ваще sub от add чем-то отличаются?
26.09.2009 19:48
SilverHawk не одного наводящего ответа я не увидел
26.09.2009 19:18
olegjack Ну падсказали ведь уже.
26.09.2009 19:00
SilverHawk Эта программа добывает корень из числа:

Код:
.model small
.stack 100h
b dw 16 ;число с которого находится корень
sqr dw 0 ;метка в которую сохраняется корень .code start: mov ax,@data mov ds,ax mov ax,b ;число, которое уменьшается mov bx,0 ;счетчик корня mov dx,1 ;число, что отнимается sloop: ;начало цикла sub ax,dx ;отнимаем от ax непарное число inc bx ;увеличиваем счетчик корня на 1 add dx,2 ;увеличиваем непарное число на 2 cmp ax,0 ;сравниваем число которое уменьшается с 0 jns sloop ;если нет знака продолжаем цикл sub bx,1 ;уменьшаем счетчик корня на 1 mov sqr,bx ;сохраняем счетчик в sqr mov dh,ch int 21h end start
Преподаватель сказал что программа которая возводит в степень это как эта программа, только наоборот(в основном должен сам цикл поменятся).
26.09.2009 11:43
Debian фу, Intel 486 ассемблер
чему вас учат в этой помойке...хотя вы и так не учитесь)

Debian добавил 26.09.2009 в 12:47
Код:
.model small
.stack 100h
b dw 16 ;число с которого находится корень
sqr dw 0 ;метка в которую сохраняется корень .code start: mov ax,@data mov ds,ax mov ax,b ;число, которое уменьшается mov bx,0 ;счетчик корня mov dx,1 ;число, что отнимается sloop: ;начало цикла add ax,dx ;отнимаем от ax непарное число inc bx ;увеличиваем счетчик корня на 1 add dx,2 ;увеличиваем непарное число на 2 cmp ax,0 ;сравниваем число которое уменьшается с 0 jns sloop ;если нет знака продолжаем цикл sub bx,1 ;уменьшаем счетчик корня на 1 mov sqr,bx ;сохраняем счетчик в sqr mov dh,ch int 21h end start
26.09.2009 11:41
SilverHawk Эта программа добывает корень из числа:

Код:
.model small
.stack 100h
b dw 16 ;число с которого находится корень
sqr dw 0 ;метка в которую сохраняется корень .code start: mov ax,@data mov ds,ax mov ax,b ;число, которое уменьшается mov bx,0 ;счетчик корня mov dx,1 ;число, что отнимается sloop: ;начало цикла sub ax,dx ;отнимаем от ax непарное число inc bx ;увеличиваем счетчик корня на 1 add dx,2 ;увеличиваем непарное число на 2 cmp ax,0 ;сравниваем число которое уменьшается с 0 jns sloop ;если нет знака продолжаем цикл sub bx,1 ;уменьшаем счетчик корня на 1 mov sqr,bx ;сохраняем счетчик в sqr mov dh,ch int 21h end start
Преподаватель сказал что программа которая возводит в степень это как эта программа, только наоборот(в основном должен сам цикл поменятся).
25.09.2009 22:00
Debian о, я еще придумал способ возведения в квадрат на асме, только число должно быть четным...
побитный сдвиг влево... при каждом сдвиге число умножается на 2...
ну то есть
00000011 = 3
после сдвига влево на 1
00000110 = 6
после сдвига еще раз
00001100 = 12
... и вперет на асме)

Код:
movlw DATA
          movwf 0x14
          movwf 0x16
Label1
               decfsz 0x16,1
               goto $+1
               goto main
               RRF 0x14,0
          goto Label1
 ; после выполнения результат будет сидеть в аккумуляторе W
25.09.2009 21:51
pingwinator
Цитата:
Сообщение от Debian Посмотреть сообщение
метка main гдето в программе, куда надо выйти просле проработки чудо-умножения
можно было написать
goto nahyi
))))))))))))

Debian добавил 25.09.2009 в 22:49
экспоненту на асме слабо написать?)
да, слабо
25.09.2009 21:46
Debian метка main гдето в программе, куда надо выйти просле проработки чудо-умножения
можно было написать
goto nahyi
))))))))))))

Debian добавил 25.09.2009 в 22:49
экспоненту на асме слабо написать?)
25.09.2009 21:43
Rezonat не всех. Когда я делал лабы, то нужна была рабочая программа. Как например проверить, что лаба работает, и работает именно так как нужно, на любом наборе тестов? Более сложную никто не будет вычитывать вручную. ПС, правда это и лабой нельзя назвать, неужели такое задают?
25.09.2009 21:43
pingwinator
Цитата:
Сообщение от Debian Посмотреть сообщение
писал по памяти, уже 100 лет на асме не писал...
для контроллера семейсnва Microchip PIC16FXXX
возведение в квадрат
результат должен иметь длину не более 8 байт, в противном случае
проц выставит флаг переноса и обнулит переменную

Код:
     movlw DATA
     movwf 0x14
     movwf 0x16
Label1
     decfsz 0x16,1
     goto $+1
     goto main
     movf 0x14,0
     addwf 0x14,0
     goto Label1
 ; после выполнения результат будет сидеть в аккумуляторе W
ну вроде как-то так...
а где метка маин?
25.09.2009 21:40
Debian писал по памяти, уже 100 лет на асме не писал...
для контроллера семейсnва Microchip PIC16FXXX
возведение в квадрат
результат должен иметь длину не более 8 байт, в противном случае
проц выставит флаг переноса и обнулит переменную

Код:
     movlw DATA
     movwf 0x14
     movwf 0x16
Label1
     decfsz 0x16,1
     goto $+1
     goto main
     movf 0x14,0
     addwf 0x14,0
     goto Label1
 ; после выполнения результат будет сидеть в аккумуляторе W
ну вроде как-то так...
25.09.2009 21:37
TIGR
Цитата:
Сообщение от Rezonat Посмотреть сообщение
странно, когда программы сдаются в тетрадках.
обычная практика абсолютно всех наших учебных заведений )))
25.09.2009 21:35
Rezonat странно, когда программы сдаются в тетрадках.
25.09.2009 21:03
TIGR та где угодно такое задают)) и в хнту на ряде кафедр и в корабелке и в машинке думаю тож...
В этой теме более 30 ответов(а). Нажмите здесь, чтобы перезагрузить эту тему.

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.

Время на сервере: 16:25.

Регистрация Справка Пользователи Календарь Сообщения за день

vBulletin 3, Copyright © 2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co