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

суббота, 23 июня 2012 г.

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

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  
  
Противоугонные системы новейшего поколения cо спутниковой связью и оперативным реагированием!
  

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

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

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

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

Асмик Гаряка
Статус: Советник
Рейтинг: 10970
• повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4366
• повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2263
• повысить рейтинг »

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

Номер выпуска:1526
Дата выхода:23.06.2012, 15:30
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:91 / 35
Вопросов / ответов:1 / 1

Консультация # 186394: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Задание 4. Изучить особенности сложения и вычитания целых чисел в ПК (беззнаковых и со знаком). Разобраться, для чего служат флаги переноса (CF) и переполнения мантиссы (OF). Изучить команды сложения и вычитания, допустимые типы операндов, устанавливаемые флаги. Написать фрагмент программы ...


Консультация # 186394:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Задание 4. Изучить особенности сложения и вычитания целых чисел в ПК (беззнаковых и со знаком). Разобраться, для чего служат флаги переноса (CF) и переполнения мантиссы (OF). Изучить команды сложения и вычитания, допустимые типы операндов, устанавливаемые флаги.
Написать фрагмент программы на ассемблере (описание переменных и команды вычислений) в соответствии с указанным вариантом из табл. 5. Подобрать числовые значения таким образом, чтобы команды устанавливали различные флаги условий (OF,CF,ZF,SF); в каждом варианте – по крайней мере 3 различных флага. В комментариях к командам указать получаемые значения флагов.

Вариант задания

F – массив 5 слов. Вычтите из среднего числа сумму остальных. Результат поместить в ВX.


Задание 5. Написать фрагмент программы на ассемблере (описание переменных и команды вычислений) в соответствии с указанным вариантом. Использовать операторы организации ци кла и индексирование.

Вариант задания

В последовательные 10 байт памяти поместить коды цифр от ‘0’ до ‘9’. Выполнить размещение не в директиве описания данных, а программно.
А так же. Оформить в виде процедур фрагмент программы :
1. С передачей параметров через регистры.
2. Через стек.

Дата отправки: 19.06.2012, 22:24
Вопрос задал: Igordrum (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Лысков Игорь Витальевич (Старший модератор):

Здравствуйте, Igordrum!
4)

Код :
;Краткая справка по необходимым флагам ;OF — флаг переполнения. Этот флаг устанавливается в 1, если результат предыдущей  ;     арифметической операции над числами со знаком выходит за допустимые для них пределы.  ;     Например, если при сложении двух положительных чисел получается число со старшим битом,  ;     равным единице (то есть отрицательное) и наоборот. ;CF — флаг переноса. Устанавливается в 1, если результат предыдущей операции  ;     не уместился в приемнике и произошел перенос из старшего бита или если  ;     требуется заем (при вычитании), иначе устанавливается в 0.  ;     Например, после сложения слова 0FFFFh и 1, если регистр, в который надо  ;     поместить результат, — слово, в него будет записано 0000h и флаг CF = 1.  ;ZF — флаг нуля. Устанавливается в 1, если результат предыдущей команды — ноль.  ;SF — флаг знака. Этот флаг всегда равен старшему биту результата.   ;F – массив 5 слов. Вычтите из среднего числа сумму остальных.  ;Результат поместить в ВX  SSEG   SEGMENT STACK        DW      64 DUP(?) SSEG   ENDS  DSEG   SEGMENT         ; сегмент данных                        ; ДИРЕКТИВЫ ОПИСАНИЯ ДАННЫХ F      DW     0002h,7fffh,0ffffh,8000h,0fffeh DSEG   ENDS CSEG   SEGMENT         ASSUME SS:SSEG,CS:CSEG,DS:DSEG  Start  PROC   FAR  ; Выполнение соглашений DOS и настройка регистра DS               PUSH   DS                      SUB    AX,AX                   PUSH   AX                      MOV    AX,DSEG        MOV    DS,AX         MOV    AX,F     ; AX = 0002h        ADD    AX,F+2   ; AX = 0002h+07fffh = 8001h                       ; O=1, S=1, Z=0, C=0        ADD    AX,F+6   ; AX = 8001h+8000h = 0001h                       ; O=1, S=0, Z=0, C=1        ADD    AX,F+8   ; AX = 0001h+0fffeh = 0ffffh                       ; O=0, S=1, Z=0, C=0        MOV    BX,F+4   ; BX = 0ffffh        SUB    BX,AX    ; BX = 0ffffh - 0ffffh = 0                       ; O=0, S=0, Z=1, C=0 ; Возврат в DOS                   RET                       Start  ENDP     CSEG   ENDS                            END    Start

5)
Код :
;В последовательные 10 байт памяти поместить коды цифр от ‘0’ до ‘9’.  ;Выполнить размещение не в директиве описания данных, а программно.  SSEG   SEGMENT STACK        DW    64 DUP(?) SSEG   ENDS  COUNT  EQU   10  DSEG   SEGMENT         ; сегмент данных NUMS   DB    COUNT dup(?) DSEG   ENDS     .186 CSEG   SEGMENT         ASSUME  SS:SSEG,CS:CSEG,DS:DSEG  Start  PROC  FAR  ; Выполнение соглашений DOS и настройка регистра DS               PUSH  DS                      SUB   AX,AX                   PUSH  AX                      MOV   AX,DSEG        MOV   DS,AX         LEA   SI,NUMS        MOV   CX,COUNT        MOV   AL,'0' FORM_NUM_LOOP:        MOV   [si],AL        INC   SI        INC   AL        LOOP  FORM_NUM_LOOP         RET Start  ENDP      CSEG   ENDS                            END   Start

В виде процедур:
Код :
;В последовательные 10 байт памяти поместить коды цифр от ‘0’ до ‘9’.  ;Выполнить размещение не в директиве описания данных, а программно.  SSEG   SEGMENT STACK        DW    64 DUP(?) SSEG   ENDS  COUNT  EQU   10  DSEG   SEGMENT         ; сегмент данных NUMS   DB    COUNT dup(?) DSEG   ENDS         .186             ;необходимо, чтобы в стек засылать число CSEG   SEGMENT         ASSUME  SS:SSEG,CS:CSEG,DS:DSEG  Start  PROC  FAR  ; Выполнение соглашений DOS и настройка регистра DS               PUSH  DS                      SUB   AX,AX                   PUSH  AX                      MOV   AX,DSEG        MOV   DS,AX         LEA   SI,NUMS    ;в регистрах        MOV   CX,COUNT        CALL  FORM1         PUSH  OFFSET NUMS;через стек        PUSH  COUNT        CALL  FORM2         RET Start  ENDP      FORM1  PROC        MOV   AL,'0' FORM_NUM_LOOP1:        MOV   [SI],AL        INC   SI        INC   AL        LOOP  FORM_NUM_LOOP1        RET FORM1  ENDP  FORM2  PROC           PUSH  BP         ;сохраним старое значение BP        MOV   BP, SP     ;будем адресовать стековый кадр         MOV   CX, [BP+4] ;длина массива        MOV   SI, [BP+6] ;адрес массива         MOV   AL,'0' FORM_NUM_LOOP2:        MOV   [SI],AL        INC   SI        INC   AL        LOOP  FORM_NUM_LOOP2         POP   BP         ;восстановим старый BP        RET   4          ;при возврате удалим из стека 4 байта (2 слова)! FORM2  ENDP  CSEG   ENDS                            END   Start

Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 20.06.2012, 11:42
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


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

Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать    22 июня 2012, 15:02
RFpro.ru: Ассемблер? Это просто! Учимся программировать    21 июня 2012, 14:33
RFpro.ru: Ассемблер? Это просто! Учимся программировать    20 июня 2012, 14:02

Все выпуски рассылки

23 июня 2012 отмечают:
Международный Олимпийский день
Дуань-у цзе — Фестиваль лодок-драконов
Начало поста «Песьи дни»
День государственной службы ООН
Международный день вдов
Аграфена Купальница
День полиции в Казахстане
Национальный праздник в Люксембурге (День рождения Великого Герцога)

Именины: Александр, Илья, Иннокентий, Кузьма, Макар, Николай, Павел, Татьяна, Тимофей, Алексей, Андрей, Анна, Антонина, Василий, Герасим, Иван, Игнатий
 
 

Subscribe рекомендует
 
Компьютеры и интернет  →   рассылки   и   группы
  
Новости сайта HardwareTech.ru
Новости и статьи о видеокартах, процессорах, материнские платах и т. д., а также их обзоры и тесты. Интересные устройства, современные разработки, новейшие гаджеты, open source и многое другое. Обо всем этом мы рассказываем нашим читателям ежедневно.
Подписчиков: 413
  Миграционный лист "Приключения иностранцев в России"
ИНОСТРАНЕЦ! СТОЙ! Общероссийский миграционный лист "Приключения иностранцев в России" приглашает тебя! У нас весь спектр миграционных проблем: от разрешения на работу до гражданства. Задай вопрос - получи ответ! В нашей стране - Nelegalov.Net!
Подписчиков: 1394
  Screen reader JAWS for Windows Russian
Обсуждение программы экранного доступа для слепых "JAWS" фирмы "Фридом сайентифик".
Подписчиков: 695
 
 
 
Подписан адрес: admin10383.deep@blogger.com
Код этой рассылки: comp.prog.assembler
Архив рассылки
Отписаться:  На сайте  Почтой
Поддержка подписчиков
Убрать рекламу
Другие рассылки этой тематики
Другие рассылки этого автора
 
Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

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

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