Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2017, 12:52   #1
BRIINWAY
 
Регистрация: 05.12.2017
Сообщений: 7
По умолчанию Ассемблирование

Доброго времени суток! Прошу у вас помощи. Написал программу, но не могу сделать ассемблирование. Высвечивается "error A2022: instruction operands must be the same size"


Код:
.686       ; директива определения системы команд микропроцессора 
 .model flat,stdcall     ; задание линейной модели памяти

.data               ; директива определения данных
 _a dw 5 ; запись в 16-разрядную константу памяти с именем _a числа 5
 _b dw 27
 _c dw 86
 _e dw 1986
 _d dw 1112
 res dw 0       ; резервирование памяти для сохранения переменной res

.code      ; директива начала сегмента команд
 start:
 mov edx,0  ; очистка регистров
 mov ebx,0  ; очистка регистров
 mov ecx,0  ; очистка регистров
 mov ax,_e  ; в регистр ax заносим число _e
 mul _d     ; множим _e и _d
 SHL edx,16  ; делаем сдвиг на 16
 mov dx,ax
 push edx      ; бросаем значение в стек
 mov edx,0
 mov ax,_e
 mov cx,_b
 div cx     ; делим ax на cx
 pop ecx  ; достаем из стека значение
 sub ecx,eax  ; отнимаем
 mov ax,_a
 sub eax,ecx
 mov res, eax
 ret     ; возвращение управление OC
 end start      ; окончание программы с именем start

Последний раз редактировалось BRIINWAY; 05.12.2017 в 13:07.
BRIINWAY вне форума Ответить с цитированием
Старый 05.12.2017, 12:58   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от BRIINWAY Посмотреть сообщение
Высвечивается "error A2022: instruction operands must be the same size"
А перевести не пробовали?
Он, наверное, ещё и строчку пишет, в которой это безобразие происходит?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 05.12.2017, 13:10   #3
BRIINWAY
 
Регистрация: 05.12.2017
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
А перевести не пробовали?
Он, наверное, ещё и строчку пишет, в которой это безобразие происходит?
Конечно пробовал. Ошибка в строке 30. Перепроверял и переделывал несколько раз, но так и не нашёл решение проблемы.
BRIINWAY вне форума Ответить с цитированием
Старый 05.12.2017, 13:14   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ок, в чём разница между регистром eax и ax?

Ну и так, немного похожая тема: http://www.programmersforum.ru/showthread.php?t=147423
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 05.12.2017, 13:18   #5
BRIINWAY
 
Регистрация: 05.12.2017
Сообщений: 7
По умолчанию

eax - 32-битный, а ax - 16-битный.

Последний раз редактировалось BRIINWAY; 05.12.2017 в 13:23.
BRIINWAY вне форума Ответить с цитированием
Старый 05.12.2017, 13:19   #6
BRIINWAY
 
Регистрация: 05.12.2017
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Ок, в чём разница между регистром eax и ax?
eax - 32-битный, а ax - 16-битный.
BRIINWAY вне форума Ответить с цитированием
Старый 05.12.2017, 14:09   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А какого размера переменная определенная с помощью dw?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблирование djonatan98 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 03.10.2012 15:18
Первая программа, ассемблирование. pinkiller Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 26.02.2012 14:25
ассемблирование программы Palomnik1096 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 17.05.2011 18:05
Ассемблирование в DEbug amki6 Помощь студентам 0 04.05.2010 21:30
Ассемблирование в защищённном режиме. Doholyan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 26.01.2010 20:55