WMmail.ru - сервис почтовых рассылок

воскресенье, 29 мая 2011 г.

RFpro.ru: Ассемблер? Это просто! Учимся программировать

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  
  
Эксклюзивные бренды по клубным ценам!
  
  
Худеть не напрягаясь - легко! Худеть не напрягаясь - легко!
Теряйте лишние килограммы с поясом для похудения Vibra Tone.

  Вспомни детство! Вспомни детство!
Аппарат для приготовления сахарной ваты - отличное угощение!

  Надоела сутулая спина и обвислый живот? Надоела сутулая спина и обвислый живот?
Тренажер Ab Rocket - великолепный пресс всего за несколько недель!

 
  

  Мои подписки      Мои группы      Мои новости     
        Автор 
Калашников О.А.
      
  
Компьютеры и интернет   →   Софт   →   Программирование   →   RFpro.ru: Ассемблер? Это просто! Учимся программировать
  
RFpro.ru: Ассемблер? Это просто! Учимся программировать
 
 

Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Boriss
Статус: Академик
Рейтинг: 2670
• повысить рейтинг »
Жерар
Статус: Профессор
Рейтинг: 2281
• повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2256
• повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1454
Дата выхода:30.05.2011, 03:00
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:216 / 64
Вопросов / ответов:2 / 2

Вопрос № 183311: Здравствуйте, уважаемые эксперты! Прошу Вас помочь в написании этой программы: Дана двухбайтовая двоичная строка. Найти в ней все сочетания из трех единиц (сочетание 11111 считать за три повторения). Задача для TASM, model small. Как ...


Вопрос № 183321: Добрый день, уважаемые эксперты! Прошу помочь с программой, не могу понять, как её реализовать: Матрица (размерность 4х4). Найти номера строк, в которых есть числа, кратные пяти, и сформировать из них отдельный массив (номера не должны повторятьс...

Вопрос № 183311:

Здравствуйте, уважаемые эксперты! Прошу Вас помочь в написании этой программы:
Дана двухбайтовая двоичная строка. Найти в ней все сочетания из трех единиц (сочетание 11111 считать за три повторения).
Задача для TASM, model small.
Как я понимаю, можно двигать младший бит в CF. Но не могу понять как настроить счетчики.
Заранее спасибо.

Отправлен: 24.05.2011, 14:07
Вопрос задал: Валитов Ринат Харисович (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Airyashov (Студент) :
Здравствуйте, Валитов Ринат Харисович!
вариант решения
Код :
.model small ; модель пямяти для программы типа EXE stack 100h  ; сегмент стека  data   ; сегмент данных  Sbit dw 1111011100011111b  ; битовая строка  code   ; сегмент кода   start:   ; точка входа в программу  mov ax,@data; инициализация семента данных  mov ds,ax   xor cx,cx  ; cx=0 тут считаем кол-во групп  mov dx,Sbit  ; данные, загрузим битовую строку в регистр  mov ax, 111b ; ax=группа которую ищем  next:  mov bx,dx   ; поместить строку во временный регистр  and bx,ax   ; сдклать логическое И с группой  cmp bx,ax   ; сравнить группу и результат предыдущей операции  jne @net_sovp  ; если не совпадают переход   inc cx   ; иначе, увеличить счетчик  net_sovp:  shl ax,1   ; сдвинуть группу на разряд влево  jnc @next  ; проверяем, все ли групы прошли, нет продолжить цикл  ; кол-во групп в cx    mov ax,4c00h ; номер функции DOS и параметр, завершить программу, код ошибки 0  int 21h   ; вызов DOS  end @start   ; точка входа 

Ответ отправил: Airyashov (Студент)
Ответ отправлен: 25.05.2011, 13:50
Номер ответа: 267371
Россия, Казань
Адрес: Казань
ICQ # 317748666

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 267371 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Вопрос № 183321:

    Добрый день, уважаемые эксперты! Прошу помочь с программой, не могу понять, как её реализовать:
    Матрица (размерность 4х4). Найти номера строк, в которых есть числа, кратные пяти, и сформировать из них отдельный массив (номера не должны повторяться).
    Матрицы для меня темный лес на АСМе. Все это дело на TASM
    Большое спасибо.

    Отправлен: 24.05.2011, 19:43
    Вопрос задал: Сонечкин Илья Федорович (Посетитель)
    Всего ответов: 1
    Страница вопроса »


    Отвечает Лысков Игорь Витальевич (Старший модератор) :
    Здравствуйте, Сонечкин Илья Федорович!
    Предлагаю такой вариант решения.
    Вообще говоря, можно было воспользоваться тем, 4 - степень двойки, деление релизовать через сдвиг,
    но я сделал через деление, как более универсальный способ

    Код :
      .model small  N equ 4  .data array dw 125, 34, 67, 5  dw 1, 3, 98, 100  dw 4, 64, 67, 3  dw 78, 9, 10, 2 div5 dw N dup (?)  ;сюда запишем номера строк элементов матрицы, кратных 5 count dw ?   ;их количество   .code main proc  mov ax, @DATA  mov ds, ax  mov es, ax   lea di, div5  ;адрес, куда писать  xor bx, bx   ;база матрицы, одновременно индекс строки  mov cx, N   ;число строк  mov count, 0  ;число чисел, кратных 5  mov bp, 5   ;будем делить на 5  RowLoop:    ;цикл по строкам  push cx   ;сохраним счетчик строк  mov cx, N   ;число элементов в строке  xor si, si   ;индекс в строке  ColLoop:    ;цикл по колонкам в строке  mov ax, array[bx+si] ;очередной элемент  cwd    ;превращаем в двойное слово dx:ax  idiv bp   ;делим на 5  test dx, dx   ;проверяем остаток  jnz next   ;не делится нацело - пропускаем  cmp count, 0  ;если еще ничего нет,  je SaveRow   ; то сразу пишем      ;проверим, чтобы номера строк не повторялись  push di   ;сохраним использованные регистры  push cx  mov ax, bx   ;сформируем номер строки 0-4  mov cl, N*2   ;разделим на длину строки в байтах  div cl   ;разделится нацело, поэтому ah=0  mov cx, count  ;число запомненных номеров строк  lea di, div5  ;адрес номеров строк  repne scasw   ;ищем, пока не равно  pop cx  pop di  jz next   ;нашли - пропускаем элемент в строке SaveRow:    ;сохраняем  mov ax, bx   ;сформируем номер строки 0-3  mov cl, N*2  div cl   ;ax = 0, 1, 2, 3  stosw    ;и сохраняем  inc count   ;считаем  jmp NextRow   ;дальше идти нет смысна - переходим на следующую строку next:     ;на следующий элемент в строке  inc si   ;у нас слова, по 2 байта  inc si   ;2 inc-а короче, чем add si,2     loop ColLoop   ;по колонкам NextRow:    ;переходим на следующубю строку  add bx, N*2   ;смещаем базу на 4 элементов  pop cx   ;восстанавливаем счетчик строк  loop RowLoop   ;по всем строкам   mov ax, 4c00h  ;выходим в ДОС   int 21h main endp   end main 

    -----
    Люби своего ближнего, как самого себя

    Ответ отправил: Лысков Игорь Витальевич (Старший модератор)
    Ответ отправлен: 25.05.2011, 14:33
    Номер ответа: 267373
    Украина, Кировоград
    Тел.: +380957525051
    ICQ # 234137952
    Mail.ru-агент: igorlyskov@mail.ru

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 267373 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


     
     
    Комментировать выпуск
         В избранное

    Прошлые выпуски
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    29 мая 2011, 02:34
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    26 мая 2011, 20:13
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    25 мая 2011, 17:04

    Все выпуски рассылки
     
     
      
    Все дело в размере! Все дело в размере!
    Easy Curves - первый тренажер для женской груди!

      Здоровая пища: миф или реальность? Здоровая пища: миф или реальность?
    Аэрогриль Flavorwave Turbo Oven - новое слово в кухонном досуге!

      Скачай "Пятое колесо" Скачай "Пятое колесо"
    Билет в первый класс. Nissan Juke. Кругом одни гибриды.

     
      

    Subscribe рекомендует
     
    Компьютеры и интернет  →   рассылки   и   группы
      
    Лента Истории Мира
    Большинство событий в мире оставляет неизгладимый отпечаток в истории человечества. Данная группа создана на базе сайта www.vokurat.ru - Лента Истории М...
    Темы: 65   Участники: 223
      Живая фотография
    Группа для всех, кто любит фотографировать. Приветствуются фото, не имеющие коррекции и доработки в разного рода графических редакторах - "фото как есть". Единственно, допускаются надписи и водяные знаки - для защиты авторских прав.
    Темы: 2070   Участники: 1107
      Крав-мага в России
    В реальном бою нет правил. Побеждает тот, кто выживает… Крав-мага в переводе с иврита קרב מגע – «...
    Темы: 16   Участники: 1003
     
     
     
    Подписан адрес: admin10383.deep@blogger.com
    Код этой рассылки: comp.prog.assembler
    Архив рассылки
    Отписаться:  На сайте  Почтой
    Поддержка подписчиков
    Убрать рекламу
    Другие рассылки этой тематики
    Другие рассылки этого автора
     
    Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

    Комментариев нет:

    Отправить комментарий