Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массивы 
:(
    Опции темы
ZIFIR
Дата 19.5.2009, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



При вводе чисел, в рег al заносится ascii код числа, а при mov mas[si], al в массив заносится не код а число
Почему?
Код

model small
.stack 100
.data
  mas db 10 dup(?)  
.code
main:
      mov ax, @data
      mov ds, ax
      xor ax, ax
      mov cx, 10
      mov si, 0
vvod:
      mov ah, 1h
      int 21h
      mov mas[si], al
      inc si
loop vvod   
      mov si, 0
      mov cx, 10
vivod:
      mov ah, 02h
      mov dl, mas[si]
      int 21h
      inc si
loop vivod
      mov ax, 4c00h
      int 21h
end main

PM MAIL   Вверх
Evjeny
Дата 19.5.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Немного не понял вопроса. Что значит заносится число? А что должно заносится?
В данном случае все работает правильно - в массив заночится шестнадцатиричное число, представляющее собой ASCII код символа.
PM MAIL WWW   Вверх
ZIFIR
Дата 19.5.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В отладчике TD есть окно View->Variables. В этом окне, в массив mas заносятся числа. Нажал 1, mas="1         ".
PM MAIL   Вверх
Evjeny
Дата 19.5.2009, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так естественно. В этом окне показывается не код символа, а сам символ. Чтобы увидеть коды символов лучше смотри все в окне дампа.
На первой команде
Код

mov mas[si], al

перейди в окно дампа, нажми ctrl+g и введи ds:si (соответсвенно адрес массива), и затем пошагово выполни программу.
PM MAIL WWW   Вверх
Mikl_
Дата 20.5.2009, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 6
Всего: 14



ZIFIR, кусок 
Код
mov si, 0
vvod: mov ah, 1h
      int 21h
      mov mas[si], al
      inc si
loop vvod  
разумно заменить на 
Код
mov di,offset mas
push ds 
pop es
wod: mov ah, 1h
      int 21h
      stosb
loop vvod  
Спасибо dumb я, как всегда, думал об одном, а писал другое user posted image

Это сообщение отредактировал(а) Mikl_ - 21.5.2009, 03:00
PM MAIL   Вверх
dumb
Дата 20.5.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 4
Всего: 158



Код
mov di,offset mas
...
stosb

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

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

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


 




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


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

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