7 / 7 / 3
Регистрация: 06.12.2009
Сообщений: 33
1

Обменять содержимое сегментных регистров DS и ES

12.12.2009, 12:02. Показов 5641. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот задачка:
Обменять содержимое сегментных регистров DS и ES.
У меня получилось вот так:
Assembler
1
2
3
MOV AX, DS
MOV BX, ES
XCHG AX, BX
Правильно ли она решена?
Заранее благодарю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2009, 12:02
Ответы с готовыми решениями:

Связь сегментных регистров с сегментами
При написании *.com програм адреса в сегментные регистры заносятся директивой assume assume...

Вывести значение сегментных регистров на экран
Как вывести значения сегментных регистром на экран?

Содержимое регистров
Здравствуйте Знатоки и Программисты! Очень нужна Ваша помощь! Я начинающий программист, и мне...

Название и содержимое регистров
помогите пожалуйста Написать программу, выводящую на экран названия и содержимое регистров...

8
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
12.12.2009, 12:07 2
Нет. После этого не изменится содержимое ни в DS, ни в ES.
1
7 / 7 / 3
Регистрация: 06.12.2009
Сообщений: 33
12.12.2009, 13:26  [ТС] 3
А каково правильное решение? Заранее благодарю.
0
5229 / 3201 / 362
Регистрация: 12.12.2009
Сообщений: 8,112
Записей в блоге: 2
12.12.2009, 13:28 4
Сам новичек, но так вроде должно получится

Assembler
1
2
3
4
mov ax,ds
mov bx,es
mov es,ax
mov ds,bx
1
7 / 7 / 3
Регистрация: 06.12.2009
Сообщений: 33
16.12.2009, 10:59  [ТС] 5
А можно выполнить эти же функции в три команды? Может быть с помощью LES и LDS?
0
5229 / 3201 / 362
Регистрация: 12.12.2009
Сообщений: 8,112
Записей в блоге: 2
16.12.2009, 15:52 6
По поводу LES и LDS - я пока не знаю, что они значат, поэтому ни чего сказать не могу.
Вот еще вариант в четыре комманды без использования других регистров:
Assembler
1
2
3
4
push DS ; заносим DS в стек
push ES ; ES в стек
pop ES ; извлекаем верхнее значение стека (т.е. DS) в ES. Теперь ES = DS
pop DS ; теперь DS = начальному значению ES
2
5229 / 3201 / 362
Регистрация: 12.12.2009
Сообщений: 8,112
Записей в блоге: 2
17.12.2009, 20:45 7
Вот вариант в 3 комманды:
Assembler
1
2
3
XCHG AX, DS
XCHG AX, ES
XCHG AX, DS
2
2 / 2 / 1
Регистрация: 04.01.2010
Сообщений: 4
04.01.2010, 17:16 8
1. XCHG НЕ работает с сегментными регистрами!
2. Правильно будет, не
Assembler
1
2
3
4
push ds
push es
pop es
pop ds
т.к в данном случае все вернется на свои места,а :
Assembler
1
2
3
4
push ds
push es
pop ds
pop es
2
5229 / 3201 / 362
Регистрация: 12.12.2009
Сообщений: 8,112
Записей в блоге: 2
18.01.2010, 20:29 9
Согласен! По поводу XCHG я тогда еще не знал, а по поводу стека, просто ступил )
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2010, 20:29
Помогаю со студенческими работами здесь

Найти содержимое регистров после выполнения группы команд
Задано содержимое регистров AL, BL i DL. Найти содержимое регистров после выполнения группы команд:...

Обменять местами содержимое ячеек памяти со смещениями 0002h и 0004h
Очень прошу помочь написать программы: 1) Обменять местами содержимое ячеек памяти со смещениями...

Как и почему меняется содержимое регистров после выполнения очередной команды
Как и почему меняется содержимое регистров после выполнения очередной команды?

Определить содержимое регистров по уравнению
Всем привет! Ребята, помогите пожалуйста решить такое вот уравненице.. (AX+BX)/3 - (DX+CX)*2 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru