Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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

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

При компиляции выдает ошибку: 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,410
Репутация: 431
По умолчанию

Код:

Z DB ?

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

Цитата:
Сообщение от counter Посмотреть сообщение
Код:

Z DB ?

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

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

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В коде 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 09:36
Как убрать такую розовую полосу из браузера,причём я уже всё перепробовал и она отображается во всех брау DartWayder HTML и CSS 1 22.05.2009 19:53


21:31.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru