Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исследование арифметических операций 
:(
    Опции темы
M9C1K
Дата 7.9.2010, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемые программисты, помогите с кодом,и если можно с объяснением.
Используя в качестве операндов переменные, определенные в сегменте данных,написать команды для выполнения указанных операций, вставить их в соответствующий фрагмент программы PROG4.

операция -> умножение 
1-ый операнд -> регистр 
2-ой операнд -> регистр

Вот ,что получилось,подскажите где ошибся

Код

TITLE   PROG4    АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
; -------------------------------------------------------------------------------
DATASG     SEGMENT     PARA
REZ     DW      ?
DATASG     ENDS
 
STACKSG SEGMENT  Stack
DB      12 DUP(?)
STACKSG ENDS
 
CODESG   SEGMENT        PARA    'Code'
BEGIN   PROC            FAR
ASSUME  SS:STACKSG, CS:CODESG, DS:DATASG
PUSH    DS                      ; корректное 
SUB     AX,AX           ;     завершение
PUSH    AX                      ;     программы.
MOV     AX,DATASG       ; инициализация
MOV     DS,AX           ;     сегментного регистра DS.
 
;---------------операция -> умножение, 1-ый операнд -> регистр, 2-ой операнд -> регистр---------
mov bl, X1
mul bl
MOV AX,X3
mov bx, X5
mul bx
;-----------------------------------------------------------------------------------------------------------
 
RET
BEGIN   ENDP            ;КОНЕЦ ПРОЦЕДУРЫ
CODESG  ENDS            ;КОНЕЦ СЕГМЕНТА
END             BEGIN   ;КОНЕЦ ПРОГРАММЫ
 


PM MAIL   Вверх
Mikl_
Дата 8.9.2010, 03:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



M9C1K, а что должно получиться? В чем ошибки? программа не компилируется? пока вижу следующие ляпы
mov bl, X1
mul bl 
в AL предварительно ничего не помещаешь, поэтому при умножении AL*BL в AX окажется неизвестно что
если X1 и X2 это ячейки памяти, то можно умножать и напрямую mul X1 или mul X2
кстати Х1 и Х2 нигде не описаны ни как ячейки памяти (в сегменте данных), ни как константы (в сегменте кода) -- это тоже ошибка
а это что?
PUSH    DS                      ; корректное 
SUB     AX,AX           ;     завершение
PUSH    AX                      ;     программы.
программа еще не началась а ты ее уже завершаешь? Бред какой-то...

Это сообщение отредактировал(а) Mikl_ - 8.9.2010, 04:56
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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