Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 1089
от 19.10.2008, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 289, Экспертов: 18
В номере:Вопросов: 5, Ответов: 6

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 147111: Здравствуйте! Нужно написать программу на ассемблере через Паскаль. Т.е ввод и вывод данных осуществить на Паскале, а код программы на ассемблере, с комментариями. В массиве Z[1..n] определить сумму нечетных чисел от последнего нулевого значен...
Вопрос № 147188: Составить программу преобразования элементов исходного массива x[i] размерностью i=1..n в новый массив y[i] в соответствии с выражением: n=8 восьмиразрядные логические переменные y[i]=00001111(0F) ^ x(шестнадцатиричное), ^ - побитовое исключающее ИЛИ...
Вопрос № 147190: Уважаемые эксперты, вычислить значение выражения y=(A+B)*x*x ; A, B, x - однобайтные числа со знаком. Модель памяти small...
Вопрос № 147191: Здраствуйте эксперты прокаментируйте задачу. Точнее надо сказать что делает каждая строчка. Составьте программу преобразования эле ментов исходного массива Xi размерностью (i=1,2…n) n в новый массив Yi в соответствии с выражением: n=8 двухб...
Вопрос № 147193: Уважаемые эксперты, помогите мне пожалуйста вот в каком вопросе: [c++]asm void Asm_Change(char *s) { _asm mov ebx,s; m1: _asm cmp [ebx],0; _asm je end; _asm mov dh,'a'; _asm cmp [ebx],dh; _asm jl m2; _asm mo...

Вопрос № 147.111
Здравствуйте! Нужно написать программу на ассемблере через Паскаль. Т.е ввод и вывод данных осуществить на Паскале, а код программы на ассемблере, с комментариями.

В массиве Z[1..n] определить сумму нечетных чисел от последнего нулевого значения до Z[n] и среднее арифметическое четных чисел до последнего нуля. Заменить этот последний нуль на среднее арифметическое.

Заранее благодарен вам!
Отправлен: 13.10.2008, 22:10
Вопрос задал: Denton87 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Boriss
Здравствуйте, Denton87!
Не отвечаете, поэтому в приложении вариант с целыми числами
(переставил местами ответы, но это, видимо не важно )
Ежели что - пишите в минифоруме

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
ICQ: 320096696
----
Ответ отправлен: 15.10.2008, 12:06
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вопрос № 147.188
Составить программу преобразования элементов исходного массива x[i] размерностью i=1..n в новый массив y[i] в соответствии с выражением: n=8 восьмиразрядные логические переменные y[i]=00001111(0F) ^ x(шестнадцатиричное), ^ - побитовое исключающее ИЛИ. С моделью памяти small.
Отправлен: 14.10.2008, 17:18
Вопрос задал: Dagra (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Boriss
Здравствуйте, Dagra!
Вот, посмотрите в приложении
Использую отображение с помощью процедуры, которой в стеке передается адрес массива
Если что не понятно будет - пишите в минифоруме. Он работает и после ...

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
ICQ: 320096696
----
Ответ отправлен: 18.10.2008, 22:24
Оценка за ответ: 5


Вопрос № 147.190
Уважаемые эксперты, вычислить значение выражения y=(A+B)*x*x ; A, B, x - однобайтные числа со знаком. Модель памяти small
Отправлен: 14.10.2008, 17:24
Вопрос задал: Dagra (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Boriss
Здравствуйте, Владимир Д!
Ну, вот так как в приложении, можно решить Вашу задачу

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
ICQ: 320096696
----
Ответ отправлен: 14.10.2008, 23:38


Вопрос № 147.191
Здраствуйте эксперты прокаментируйте задачу. Точнее надо сказать что делает каждая строчка.

Составьте программу преобразования элементов исходного массива Xi размерностью (i=1,2…n) n в новый массив Yi в соответствии с выражением:
n=8 двухбайтных чисел без знака
Yi=Xi +X(i+1)

Код программы:
model small
stack 256
.data
x db 1,2,3,4,5,6,7,8,9
y dw 8 dup (?)
.code
main:
mov ax, @data
mov ds, ax
mov cx, 8
xor ax,ax
mov si,0
cycl:
add al,x[si]
add al,x[si+1]
mov y[si],ax
xor ax,ax
inc si
loop cycl
mov ax, 4c00h
int 21h
end main
Отправлен: 14.10.2008, 17:28
Вопрос задал: Шептелуть Михайл Сергеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Шептелуть Михайл Сергеевич!

Исправленный код с комментариями в приложении.
У Вас ошибка в коде, при записи информации постоянно затирался старший бай от предыдущего результата.:
Работая с индексным регистром SI, Вы не учли, что данные имеют различный размер (источник=байт, приемник= слово).
Удачи!

Приложение:

---------
Итерация от человека, рекурсия — от Бога (Питер Дойч)

Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
Украина, Киев
Тел.: +380979536619
Адрес: Украина г.Киев
----
Ответ отправлен: 17.10.2008, 18:35


Вопрос № 147.193
Уважаемые эксперты, помогите мне пожалуйста вот в каком вопросе:

[c++]asm

void Asm_Change(char *s)
{ _asm mov ebx,s;
m1: _asm cmp [ebx],0;
_asm je end;
_asm mov dh,'a';
_asm cmp [ebx],dh;
_asm jl m2;
_asm mov dh,'z';
_asm cmp [ebx],dh;
_asm jg m2;
_asm mov dh,'A';
_asm mov [ebx],dh;
_asm mov dh,'Z';
_asm mov [ebx],dh;
m2: _asm inc ebx;
_asm jmp m1;
end: ;
}

Вот фрагмент кода, теоретически он должен заменять латинские буквы на
Заглавные. Но он меняет любые на заглавную Z. Подскажите пожалуйста, где я ошибся и на что исправить. А то завтра сдавать всё это дело. Заранее благодарю!
Отправлен: 14.10.2008, 17:32
Вопрос задал: Артасов Анатолий Алексеевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Артасов Анатолий Алексеевич!

Код:
_asm mov dh,'A';
_asm mov [ebx],dh;
_asm mov dh,'Z';
_asm mov [ebx],dh;

Этот участок кода Вам лучше заменить на следующие строки:
mov dh,0dfh
and [ebx],dh

Удачи!
---------
Итерация от человека, рекурсия — от Бога (Питер Дойч)
Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
Украина, Киев
Тел.: +380979536619
Адрес: Украина г.Киев
----
Ответ отправлен: 14.10.2008, 18:37
Оценка за ответ: 5
Комментарий оценки:
Заработало. Премного Благодарен!

Отвечает: Airyashov
ясно как день
mov ebx,s;
cmp [ebx],0;
je end;//если конец строки то выход
mov dh,'a';
cmp [ebx],dh;
jl m2;
mov dh,'z';
cmp [ebx],dh;
jg m2;
mov dh,'A';//сюда попадаем если символ в диапазоне [a...z]
mov [ebx],dh;//заменили симлов на 'A'
mov dh,'Z';
mov [ebx],dh;//заменили симлов на 'Z' поэтому 'Z' и получатся
m2: inc ebx;//перешли к следующему символу
jmp m1;
end:
Ответ отправил: Airyashov (статус: 9-ый класс)
Ответ отправлен: 15.10.2008, 08:21


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.6 от 14.10.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru
RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

В избранное