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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2018, 14:56   #11
mishganmishg
Новичок
Джуниор
 
Регистрация: 14.08.2018
Сообщений: 62
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет там никакого сложения. Для сложения есть отдельная команда.
так как в одном регистре числа хранятся вместе??
mishganmishg вне форума Ответить с цитированием
Старый 14.08.2018, 15:01   #12
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от mishganmishg Посмотреть сообщение
поулчается все эти данные заносимые в регистр ах хранятся в одном регистре и вместе
Нет. Сначала занесли одно и использовали:
Код:
(04) mov ax,0B800h 
(05) mov es,ax 
(06) mov di,0
Потом заполнили новые данные для функции:
Код:
(08) mov ah,31 
(09) mov al,1 
(10) mov es:[di],ax
Цитата:
так как в одном регистре числа хранятся вместе??
Никак. Это вам не sse и avx.
p51x вне форума Ответить с цитированием
Старый 14.08.2018, 15:19   #13
mishganmishg
Новичок
Джуниор
 
Регистрация: 14.08.2018
Сообщений: 62
По умолчанию

а то что использовали? куда девается то? или оно уже отработало и не работает?
mishganmishg вне форума Ответить с цитированием
Старый 14.08.2018, 15:22   #14
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Что так? Вот вы взяли в руки молоток и забили гвоздь, потом взяли топор и стали рубить дерево... как у вас в руках сложились молоток и топор?
p51x вне форума Ответить с цитированием
Старый 14.08.2018, 15:33   #15
mishganmishg
Новичок
Джуниор
 
Регистрация: 14.08.2018
Сообщений: 62
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Что так? Вот вы взяли в руки молоток и забили гвоздь, потом взяли топор и стали рубить дерево... как у вас в руках сложились молоток и топор?
я же положил молоток а тут получается цыфры то остаются, получается если циры отработали значит они уже использованы?
mov dx,offset My_string
mov ax,10h
mov ds,ax
mov ah,9
int 21h
...
My_string db 'Hello!$'
...
mishganmishg вне форума Ответить с цитированием
Старый 14.08.2018, 15:33   #16
mishganmishg
Новичок
Джуниор
 
Регистрация: 14.08.2018
Сообщений: 62
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Что так? Вот вы взяли в руки молоток и забили гвоздь, потом взяли топор и стали рубить дерево... как у вас в руках сложились молоток и топор?
Давайте вспомним, что функция 09h прерывания 21h выводит строку, адрес ко-торой задается в регистрах dsx. На рис. 4.1 отображено состояние программы, при котором мы умышленно загружаем в ds число 10. Обратите внимание, что в окне Memory1 отображены данные, расположенные в памяти по адресу 0A09:010Ch,а именно строка Hello!, которую должна вывести программа. Это и есть полный адрес выводимой строки, включающий в себя сегмент и смещение. Однако про-грамма перед вызовом прерывания 21h загружает в ds число 10. Следовательно, операционная система начнет выводить символы, находящиеся по адресу dsx — 0010:010Ch, что является логической ошибкой в программе.
mishganmishg вне форума Ответить с цитированием
Старый 14.08.2018, 15:34   #17
mishganmishg
Новичок
Джуниор
 
Регистрация: 14.08.2018
Сообщений: 62
По умолчанию

Если все же возникает необходимость в выводе строки, расположенной не в том сегменте, в который загружена сама программа, а в другом (такое требуется часто), то после выполнения всех необходимых операций следует восстановить сегмент-ный регистр данных ds:
...
mov ax,cs
mov ds,ax
...
mishganmishg вне форума Ответить с цитированием
Старый 14.08.2018, 15:35   #18
mishganmishg
Новичок
Джуниор
 
Регистрация: 14.08.2018
Сообщений: 62
По умолчанию

этот пример показывает с другим правда регистром что сегментный регистр ds нужно востановить же
mishganmishg вне форума Ответить с цитированием
Старый 14.08.2018, 15:38   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Зачем вы тут цитируете древний учебник?

Цитата:
Сообщение от mishganmishg Посмотреть сообщение
а тут получается цыфры то остаются, получается если циры отработали значит они уже использованы?
Что за бред у вас в голове? Представьте регистр как клеточки в тетради. Сказано занести 10 в клеточку, берем и пишем.

Цитата:
Сообщение от mishganmishg Посмотреть сообщение
этот пример показывает с другим правда регистром что сегментный регистр ds нужно востановить же
Ну да, если вы сначала записали САМИ неправильное значение 10, то, естественно, надо записать правильное значение, чтобы строка вывелась.
p51x вне форума Ответить с цитированием
Старый 14.08.2018, 15:45   #20
mishganmishg
Новичок
Джуниор
 
Регистрация: 14.08.2018
Сообщений: 62
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Зачем вы тут цитируете древний учебник?

Представьте регистр как клеточки в тетради. Сказано занести 10 в клеточку, берем и пишем.


Ну да, если вы сначала записали САМИ неправильное значение 10, то, естественно, надо записать правильное значение, чтобы строка вывелась.
а если я сам записал правильно? то после того как функция отработала это число уже не вляет на программу?
хороший учебник Калашникова для новичков
mishganmishg вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler, команда MOV OmegaBerkut Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 27.09.2015 20:44
PDP 11 - команда пересылки mov 27 27. почему это фатальная ошибка? 13xXx13 Помощь студентам 0 15.01.2012 23:34
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
команда MOV, проблемы fermat_c Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 18.04.2008 19:19
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24