Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Результаты byte не отображаются в td.exe 
:(
    Опции темы
Innuendo108
Дата 15.10.2010, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Задание было таково: в массиве байт посчитать кол-во отрицательных элементов. (писать под TASM)
Программа получилась такая: (и она работает)
Код

data segment
    otr dw ? ; кол-во отрицательных
    nn dw 10 ; размер массива
    arr db 2, -2 , 5, -4, 4, -6, -7 , -2 , -4, 1; сам массив
data ends

code segment
           assume cs: code, ds: data

    start:
            mov ax, data
            mov ds, ax
            lea bx, arr ; загружаем массив
            mov cx, nn ; счетчик - размер массива
            mov ax, 0 ; номер элемента

    beg:
            cmp BYTE ptr[bx], 0 ; сравнение текущего с нулём
            jge no ; если положительное - идём на no
            add ax, 1 ; увеличиваем счетчик
    no:   inc bx ; переходим к следующему
            loop beg ; конец цикла

            mov otr, ax ; записываем результат

    quit:
            mov ax, 4c00h
            int 21h
            code ends
            end start


Ответ в td.exe выводится, но вот сами числа я не могу просмотреть. Число 2 (первый элемент массива выглядит как "65026" ), а число -2  - "1534"

Вот скрины:
user posted image
user posted image


Почему так? Если массив делаю из word (dw пишу при объявлении mass), то всё вижу (ну конечно кроме отрицательных).

UPDATE:
Я заметил что в watches настроено word на вывод, но никак не могу изменить на byte.

Это сообщение отредактировал(а) Innuendo108 - 15.10.2010, 19:12
PM MAIL   Вверх
iff
Дата 15.10.2010, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


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

Репутация: 5
Всего: 16



Это потому что в дебаге значение показаны как слова. Обратите внимание на шестнадцатиричные выражения значений. Первый элемент массива - FE02h. Второй байт равен 2. (второй байт - потому что байты в памяти поменяны местами).


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

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

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


 




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


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

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