Перенести из массива в стек - Assembler

  1. Создать массив из 10 заданных целых чисел, записать 5 элемент в стек, используя режим прямой адресации с индексированием. Переписать элемент из стека в переменную оперативной памяти Five. Не понимаю как из стека переписать в переменную


textual

Код к задаче: «Перенести из массива в стек - Assembler»

.MODEL SMALL
.STACK 256
.DATA
A DB 25,3,95,7,12,31,75,19,61,45
.DATA?
FIVE DW (?)
.CODE
BEG:
MOV AX, @data
MOV DS, AX
XOR AX, AX
 
MOV SI, 5
MOV AL, A[SI-1]   ;AL=12=1Fh
PUSH AX           ;ax=001Fh
POP FIVE
 
MOV AX, 4C00h
INT 21h 
 
END BEG

СДЕЛАЙТЕ РЕПОСТ

15   голосов, оценка 3.733 из 5



Похожие ответы
  1. Всем привет. Прохожу один курс по асму, попалась такая задача: написать функцию, принимающую два беззнаковых числа (каждое из которых может равняться нулю), возвести в степень и вернуть ответ в rax. Написал такой код:

  1. День добрый. Дано такое условие: Получить новую матрицу путем умножения всех элементов первоначальной на наименьший положительный элемент матрицы. Должен найти минимальный элемент только среди положительных и его расположение (индексы: номер строки и столбца), после нахождения данного числа, должен сформировать новую матрицу путем умножения введённой на найденное минимальное число. Как найти минимальное значения в одномерном массиве, знаю. В двухмерном массиве на Assembler, увы такими навыками не владею.

  1. Цель работы. Ознакомление с командами турбо паскаля, выводящими символы и коды. Вывод кодов и символов командами ord, $, Chr. Задание 1. Ввести название своей средней школы и вывести их коды; P.S Writeln/Readln на Паскаль,а что за коды и как их получить, Задание 2. Написать программу формирования чисел от 1 до 100 и символа из двух первых латинских букв своей фамилии(запрашиваем с консоли) и вывести результаты. НЕ пойму,что делать.Фамилию Writeln/Readln на Паскаль,цикл FOR от 1 до 100 вівести.а вотувязать их.

  1. В ax лежит последовательность из битов : например 1011001101001001 те в ah (10110011) и в al (01001001) , и необходимо зеркально отобразить al в ah ,т.е результат должен быть таким (1001001001001001), первая мысль массив, а как реализиовать не знаю да и по любому есть способ по-лучше, пишу в ассемблерными вставками на СИ. Подскажите как сделать так ...Добавлено через 1 час 4 минутыC++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include #include int main(){     setlocale(LC_ALL, "Russian"); short rez; int f; unsigned char rzag; __asm {       //mov ds, ax     xor bl, bl     mov cl, 8     mov ax, 0000000001011001b     m1 :     rcl al, 1         rcr bl, 1         loop m1           mov al, bl         mov ah, al   mov rzag, ah             }     std::cout << "При расчет на языке Assembler получилось: " << rzag ; system("pause");   }Вот так вот, но почему-то Assembler не выдает результат хотя в переменных он лежит верный

  1. Добрый день! Маленький вопрос по поводу организации программы: я создал программу, состоящую из 3х сегментов: стека, кода и данных. Стартовую метку разместил в сегменте кода. Возникли сомнения: а вдруг сегмент стека, который я организовал до сегмента кода, будет игнорироваться компилятором (ведь начальная метка идет после него). Непонятно также где стоит ставить end, до начала сегмента данных или после? И если после, то, на мой взгляд, получается нелогичным, что данные и код находятся между началом и концом, а стек находится за пределами.. На всякий случай прилагаю модель кода:

  1. УЖЕ есть код , но он почему то у меня зациклился , помогите исправить , или предложите свой вариант , заранее спасибо

  1. Срочно нужна помощь с лабой. Вот задание: Составить процедуру (тип NEAR) заполнения блока памяти из N слов рядом натуральных чисел. Если число делится на 4 то вместо него заносится 0. Адрес начала блока в регистре ВХ

  1. Задали символьный масив С(n) n<=700... Разработать программу, которая находить и извлекает групы цифр, записаных подряд. Выводить модифицированый масив

  1. Программа заполняет массив 3, элементами из массива 1 и 2 по возрастанию, но где-то ошибка не могу найти, либо регистры не те для массива 3, либо 1 не те.