Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Assembler] Арифметика на asm 
:(
    Опции темы
Shurikg
Дата 15.11.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.10.2009

Репутация: нет
Всего: нет



Доброго всем времени суток!!

Я В асме хуже ламера так что прошу помочь

Задача:

Пользователь вводит два числа А и В в десятичном виде через макрос. Программа должна:  
1. Посчитать С=А/2+В. Установить все нечетные биты С. Расчет должен быть выполнен с использованием процедуры с переда-чей параметров через директивы.
2. Вывести на экран число С и все промежуточные числа в дво-ичном виде, с использованием макроса.

Надыбал небольшенький код, но разобраться в нем никак не могу, подскажите пожалуйста чаго в нем поменять а чаго оставить, и вообщето че тама вообще написано smile
Код

input macro
;Макрос ввода двух чисел в десятичном виде
    mov bl, 0 ; нам нужен  для второго числа, обнуляем
    lea dx, str1 ;выводм запрос на первое число
    mov ah, 9 ;нажатие клавиши
    int 21h
    l1:
        mov ah, 1
        int 21h
        cmp al, 13
        je l2
        sub al, 30h
        cmp al, 9
        jle l3
        sub al, 7
        cmp al, 15
        jle l3
        sub al, 20h
        jmp l3
    l2:
        cmp bl, 1
        je l4
        inc bl
        mov ch, cl
        xor cl, cl
        lea dx, el
        mov ah, 9
        int 21h
        lea dx, str2
        int 21h
        jmp l1    
    l3:
        shl cl, 4
        add cl, al
        jmp l1
    l4:
endm

outn macro n
  lea dx, el
  mov ah, 9
  int 21h
  lea dx, str3
  int 21h
  mov cx, 16
  xor dl, dl
  o1:
     rol n, 1
     adc dl, 30h
     mov ah, 2
     int 21h
     xor dl, dl
     loop o1
endm

calc macro
mov res, eax   
    mov bx, cx
    sub cl, 5h
    mov al, 2
    mul cl
    add al, ch
    xor cx, cx
    test al, 00010000b
    jnz c1
    mov cl, bl
    jmp e  
    c1:
       mov cl, bh 
    e:
endm


dseg segment
  str1 db 'A = $'
  str2 db 'B = $'
  str3 db 'C = A/2 + B = $'
  el db 10, 13, '$'
dseg ends

sseg segment stack
    db 60 dup (?)
sseg ends

cseg segment
    assume cs:cseg, ds:dseg, ss:sseg
    main proc
        mov ax, dseg
        mov ds, ax

    input

    calc
    mov bx, cx
   
    outn bx
        
    mov ah, 4ch
    int 21h
    main endp
cseg ends
end main



PM MAIL   Вверх
airyashov
Дата 16.11.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 1
Всего: 6



да Я вообще в вашей формулировке не могу разобраться
Расчет должен быть выполнен с использованием процедуры с переда-чей параметров через директивы.
как это через макрос чтоли



--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
111u3
Дата 16.11.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



airyashov, не обращай внимания они все так впервый раз говорят

Shurikg, в помощь тебе гугл и учебник по ассемблеру smile короче. И не надо просьбу строить из заумных слов, а то люди не понимают в чем концепция вопроса
PM MAIL ICQ   Вверх
Mikl_
Дата 17.11.2009, 05:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: нет
Всего: 14



111u3, airyashov 
перевожу, ЧТО сказал Shurikg,  smile 
"Люди добрые, позвольте к вам обратится, сами мы не местные, да задали нам преподаватели злые, да две задачи на языке незнакомом, помогите Христа ради кто чем может" smile 
PM MAIL   Вверх
111u3
Дата 17.11.2009, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



Mikl_ да знаю я что он спросил smile 
 
Shurikg, первый макрос принимает от пользователя два числа и делает из ascii(того что ты ввел) бинарные числа и возвращает их в регистрах следующий макрос считает по приведенной формуле и последний выводит результат.


to  Mikl_, если я где что упустил то это от-того что отвык от синтаксиса masm'a smile  
PM MAIL ICQ   Вверх
Mikl_
Дата 17.11.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: нет
Всего: 14



111u3
Если правильно преподавать ассемблер, то макросы должны идти, как замыкающая тема, а тут Shurikg, похоже даже основ не знает и думает, по простоте душевной, что кому-то интересно ему всё это объяснять и делать за него, хотя ясно, что ассемблер для него -- сдать и забыть, поэтому не стоит перед подобными IT-попрошайками метать биссер  smile 
PM MAIL   Вверх
111u3
Дата 17.11.2009, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



Mikl_, та настроение с утра было не очень вот и отпостился по жесткому
да так как у нас в стране проганью учать вообще жесть, да и студенты сами привыкли что за них это кто-нибудь делать будет.
+1 за новое название подобных людей

Это сообщение отредактировал(а) 111u3 - 17.11.2009, 14:55
PM MAIL ICQ   Вверх
Mikl_
Дата 17.11.2009, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: нет
Всего: 14



111u3
статус "IT-попрошайки" на wasm.ru/forum предлагалось вводить за посты начинающиеся с "Я В асме хуже ламера так что прошу помочь" но почему-то (из-за толлерантности наверное) потом отказались  smile 
PM MAIL   Вверх
111u3
Дата 17.11.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



Mikl_, прикольно
как писали на баш-орге : осень пора сдавать лабы.
PM MAIL ICQ   Вверх
dumb
Дата 19.11.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 6
Всего: 158



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0538 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.