Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Мастер-Эксперт

1035

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

658

Россия, пос. Теплоозёрск, ЕАО


ID: 400669

epimkin

Профессионал

367


ID: 401284

Михаил Александров

Академик

354

Россия, Санкт-Петербург


ID: 137394

Megaloman

Мастер-Эксперт

258

Беларусь, Гомель


ID: 400484

solowey

Профессор

96


ID: 401888

puporev

Профессор

53

Россия, Пермский край


8.1.6

02.01.2021

JS: 2.2.2
CSS: 4.2.0
jQuery: 3.5.1


 

• Assembler

Создание программ на языке Assembler.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)


Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 2219
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 255
Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0
 

Перейти к консультации №:
 

Консультация онлайн # 199828
Раздел: • Assembler
Автор вопроса: Александр (Посетитель)
Дата: 09.12.2020, 22:22
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом:
что не так с D?

Data SEGMENT ;Открыть сегмент данных

A DB 5Ah ;Инициализировать

B DB 55h ;переменные A, B, C, D, X

C DB 11h

D DB 5

X DW ?

Data ENDS ;Закрыть сегмент данных

Ourstack SEGMENT Stack ;Открыть сегмент стека

DB 100h DUP (?) ;Отвести под стек 256 байт

Ourstack ENDS ;Закрыть сегмент стека

ASSUME CS:Code, DS:Data, SS:Ourstack ;Назначить сегментные регистры

Code SEGMENT ;Открыть сегмент кодов

Start:

mov AX, Data ;Инициализировать

mov DS, AX ;сегментный регистр DS

xor AX, AX ;Очистить регистр AX

;умножим 3 на A

xor AX, AX ;Очистить регистр AX

mov AL, [A] ;поместим в регистр AL значение переменной A

mov BL, 3 ;Множитель 3 в регистр BL

mul BL ;умножим содержимое регистра AL на C

add AX, 48 ;прибавить к результату умножения 48

mov [X], AX ;возвращаем результат

xor AX, AX ;Очистить регистр AX

mov AL, [B] ;Делимое A в регистр AL(старший байт AX)

mov BL, [C] ;Делитель C в регистр BL

div BL ;Поделить

;умножим AX на D

mul D ;умножим содержимое регистра AX на D

SUB X, AX ;вычесть из Х результат умножения AX на D

mov AX, 4C00h ;Завершить программу

int 21h ;прерывание

Code ENDS ;Закрыть сегмент кодов

END Start ;Конец исходного модуля.

END Start ;Конец исходного модуля.

Состояние: Консультация закрыта

Здравствуйте, Александр!

Не все компиляторы анализируют данные программы. И компилятор не знает какую команду сгенерировать 8-ти битную или 16-ти битную. Укажате явно нужный тип

mul byte ptr D


Удачи!


Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 14.12.2020, 11:47

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 199828

Зенченко Константин Николаевич

Старший модератор

ID: 31795

1

= общий = |  10.12.2020, 21:40 |  цитировать |  профиль |  личное сообщение
Александр:

mul byte ptr D

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Зенченко Константин Николаевич

Старший модератор

ID: 31795

2

= общий = |  11.12.2020, 22:01 |  цитировать |  профиль |  личное сообщение
Александр:

помогло?

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.