Линейные преобразования в системах с фиксированной точкой

Линейные преобразования в системах с фиксированной точкой Следующая подпрограмма переводит дюймы в миллиметры, но также она может быть использована для любых линейных преобразований, для чего достаточно изменить коэффициент преобразования. Числа предствалены в 32-битном формате с фиксированной точкой. Старшее слово содержит целую часть числа, а младшее слово — дробную часть. Предполагается, что используются только положительные числа. […]

Read More

Asm: Определяем тип процессора

Следующая процедура WhatCPU определяет тип процессора, установленного в системе. Результат возвращается в регистре AX. Процедура может быть откомпилирована и 16-битным компилятором, несмотря на то, что в ней используются 32-битные инструкции для определения различия между 386, 486 и Pentium. WhatCPU proc ;POW38 ;Результат в AX ;0: i88,i86, 1: i186, 2: i286, 3: i386, 4: i486, 5: […]

Read More

Asm: Чтение значения счетчика времени

В памяти по адресу 40:6C расположено двойное слово, которое увеличивается на единицу приблизительно 18.2 раза в секунду. Системное время можно получить, считывая это слово. Младший байт может быть использован для многих «временных» задач, в т.ч. в качестве исходного значения для генератора псевдослучайных чисел (а в некторых случаях и заменить его). GetTicks proc ;POW37 ; Входные […]

Read More

Перевод чисел в двоичную форму (в виде строки)

Данная процедура конвертирует 16-битное слово в строку ASCIIZ, т.е. число 7 преобразовывается в строку 0000000000000111. Лидирующие нули включаются в строку. Строка ASCIIZ — это набор символов, завершающихся 0. NmbrToBi$ proc ;POW36 ;Входные данные: AX — смещение строки, BX — число, которое необходимо преобразовать ;Выходные данные: Строка ASCIIZ. Регистры не сохраняются. mov DI,AX ;смещение строки mov […]

Read More

Процедура считывает строку с клавиатуры

KbdInput$ proc ;POW35 ; Входные данные: смещение строки в AX ; Выходные данные: строка ASCIIZ, прочитанная с клавиатуры. Регистры не сохраняются. mov DI,AX ;смещение строки mov DX,AX ;смещение буфера mov CX,255 ;максимальное количество читаемых символов mov BX,0 ;файловый хэндл клавиатуры mov AH,3Fh ;читаем из файла (фактически — с клавиатуры) int 21h jc Input$_error ;если ошибка […]

Read More

Задание выполняется на Visual C++ 2003 — 2008 с использованием assembler вставок. В этом задании необходимо выполнить соответствующие преобразования над строкой или строками.

/* Задание выполняется на Visual C++ 2003 — 2008 с использованием ассемблерных вставок. В этом задании необходимо выполнить соответствующие преобразования над строкой или строками. Решение задачи необходимо оформить в виде одной или несколько подпрограмм, содержащих ассемблерные вставки. Как правило, в каждом задании по одной или двум входным строкам надо получить выходную строку, удовлетворяющую определенным условиям, […]

Read More

Ассемблер сопроцессор: Вычислить 4 значения функции: Y = 3 * log2(x2+1), x изменяется от 0,2 с шагом 0,3.

Вычислить 4 значения функции: Y = 3 * log2(x2+1), x изменяется от 0,2 с шагом 0,3. 3.1 Текст программы .386 ; директива определения типа микропроцессора .model flat,stdcall ; задание линейной модели памяти option casemap:none ; отличие малых и больших букв include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\fpu.inc include \masm32\include\user32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\fpu.lib .data […]

Read More

Ассемблер сопроцессор: Определить номер (х) элемента функции: xn = 3х + 5, при котором сумма элементов превысит 12 000. Результат разместить в памяти и вывести соответствующие сообщения.

Определить номер (х) элемента функции: xn = 3х + 5, при котором сумма элементов превысит 12 000. Результат разместить в памяти и вывести соответствующие сообщения. 2.1 Текст программы .386 ; директива определения типа микропроцессора .model flat,stdcall ; задание линейной модели памяти option casemap:none ; отличие малых и больших букв include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\fpu.inc […]

Read More

Ассемблер сопроцессор: Вычислить 6 значений функции: Yn = 4x/(x + 5) (х изменяется от 3 с шагом 1,25). Результат округлить к целому, разместить в памяти и вывести на экран.

Вычислить 6 значений функции: Yn = 4x/(x + 5) (х изменяется от 3 с шагом 1,25). Результат округлить к целому, разместить в памяти и вывести на экран. 1.1 Текст программы .386 ; директива определения типа микропроцессора .model flat,stdcall ; задание линейной модели памяти option casemap:none ; отличие малых и больших букв include \masm32\include\windows.inc include \masm32\include\kernel32.inc […]

Read More