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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2013, 00:01   #1
camel5
Пользователь
 
Аватар для camel5
 
Регистрация: 10.11.2013
Сообщений: 28
По умолчанию выводит такую ошибку.Что она означает?

При компиляции выдает ошибку: mov z, ax - operand types do not match
Пусть X, Y и Z – переменные размером в слово. Требуется записать в Z максимальное из чисел X и Y.
Код:
.model small
.stack 100h
.data
X DW 3500h
Y DW 4000h
BUF1 DW 80 DUP(' ')
Z DB ?
.code
START:       MOV AX, @data
             MOV DS, AX
	         MOV DX, OFFSET BUF1
             MOV AH,08H                 
             INT 21
             MOV AX, X
             CMP AX, Y	                ;x=y?
             JGE  M1	                ;x>=y -> M
             MOV   AX, Y
M1:          MOV Z, AX 
             mov dl, Z
             mov ah,02h
             int 21h 
             MOV AX, 4C00H
             INT 21H
END START
camel5 вне форума Ответить с цитированием
Старый 28.11.2013, 00:16   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Код:
Z DB ?
наверно косяк здесь
counter вне форума Ответить с цитированием
Старый 28.11.2013, 00:55   #3
camel5
Пользователь
 
Аватар для camel5
 
Регистрация: 10.11.2013
Сообщений: 28
По умолчанию

Цитата:
Сообщение от counter Посмотреть сообщение
Код:
Z DB ?
наверно косяк здесь
Но если написать "Z dw ?" - то пишет что место для операнда слишком большое. Что делать???
camel5 вне форума Ответить с цитированием
Старый 28.11.2013, 05:31   #4
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Цитата:
Что делать???
Не совать двухбайтовую переменную в однобайтовый регистр. Всё равно на экране Вы не увидите то, что ожидаете.
vadimych вне форума Ответить с цитированием
Старый 28.11.2013, 11:09   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от camel5 Посмотреть сообщение
Но если написать "Z dw ?" - то пишет что место для операнда слишком большое. Что делать???
так нормально?
Код:
.model small
.stack 100h
.data
X DW 3500h
Y DW 4000h
Z DW ?
.code
START:       MOV AX, @data
             MOV DS, AX
             MOV AX, X
             CMP AX, Y                  ;x=y?
             JGE M1                    ;x>=y -> M
             MOV AX, Y
M1:          MOV Z, AX 
             MOV AX, 4C00H
             INT 21H
END START
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В коде php попалась функция coalesce(). Что она означает? var_fj54j PHP 4 24.04.2013 10:47
найти в программе по вычислению сумм ошибку, она вроде короткая, но я что то туплюБ спасибо kametto Помощь студентам 4 28.12.2011 21:54
Кто встречал такую ошибку в GUI? intellicon Win Api 1 18.12.2011 20:04
исправить такую ошибку Djonik Общие вопросы Delphi 6 08.11.2009 08:36
Как убрать такую розовую полосу из браузера,причём я уже всё перепробовал и она отображается во всех брау DartWayder HTML и CSS 1 22.05.2009 19:53