Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ассемблер.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
90.37 Кб
Скачать

42.Өзіңіздің достарыңыз туралы ақпараттарды консолға шығаратын программа құрыңыз

;Процедура вывода строки на консоль

; DI - адрес строки

print_str:

push ax

mov ah,9 ;Функция DOS 09h - вывод строки

xchg dx,di ;Обмен значениями DX и DI

int 21h ;Обращение к функции DOS

xchg dx,di ;Обмен значениями DX и DI

pop ax

ret

43. 52+24=? Программа құрып нәтижесін консолға шығар?

function Sum(X, Y: Integer): Integer;

begin

asm

mov ax,X

add ax,Y

mov @Result,ax

end;

end;

44.Санның квадратын есептеу программасын құрып нәтижені консолға шығар?

use16 ;Генерировать 16-битный код

org 100h ;Программа начинается с адреса 100h

mov al,[v0] ;AL = v0

mov cl,[t] ;CL = t

mul cl ;AX = AL*CL = v0*t

mov bx,ax ;BX = AX = v0*t

mov al,[a] ;AL = a

mul cl ;AX = AL*CL = a*t

mov ch,0 ;Преобразуем t в слово в регистре CX

mul cx ;DX:AX = AX*CX = a*(t^2)

mov cl,2 ;CL = 2 = CX, так как CH = 0

div cx ;AX = DX:AX/2 = a*(t^2)/2

add ax,bx ;AX = AX+BX = v0*t + a*(t^2)/2

add al,[x0] ;\

adc ah,ch ;/ AX = AX+x0 = x0 + v0*t + a*(t^2)/2

mov [x],ax ;Сохраняем результат в x

mov ax,4C00h ;\

int 21h ;/ Завершение программы

;-------------------------------------------------------

x0 db 188

v0 db 7

a db 3

t db 25

x dw ?

45. Алматы қаласындағы жоғары оқу орындарының тізімін консольға шығарыңыз?

.386 ; 32-битный режим

.model flat, stdcall ; компиляция в exe-файл с возможностью вызова API

option casemap :none ; неразличение прописных и строчных символов

; содержит значения констант

include C:\masm32\include\windows.inc ; STD_INPUT_HANDLE,

; STD_OUTPUT_HANDLE

include <\masm32\include\kernel32.inc>

include <\masm32\include\user32.inc>

includelib <\masm32\lib\kernel32.lib>

includelib <\masm32\lib\user32.lib>

.data ; сегмент данных

hConsoleInput DWORD ? ; переменные для хранения хэндлов ввода и вывода,

hConsoleOutput DWORD ? ; названия этих переменных могут быть другими

; буфер 1 байт (со значением 0)

Buffer byte 1 dup (0) ; для вода с клавиатуры 1 символа,

; название буфера может быть другим

NumberOfCharsRead DWORD ? ; переменные для записи числа фактически

NumberOfCharsWritten DWORD ? ; введенных и выведенных символов,

; названия этих переменных могут быть другими

msg1 byte " Hello, World!" ; строковая переменная

; строковая переменная

msg2 byte " Нажмите Enter, чтобы выйти...", 0 ; заканчивается нулем,

; так как она будет передана

; API-функции CharToOem

msg1310 byte 13, 10 ; перевод строки

.code ; сегмент кода

start:

invoke AllocConsole ; запрашиваем у Windows консоль

invoke GetStdHandle, STD_INPUT_HANDLE ; получаем хэндл консоли для ввода

mov hConsoleInput, EAX ; записываем хэндл в переменную

invoke GetStdHandle, STD_OUTPUT_HANDLE ; получаем хэндл консоли для вывода

mov hConsoleOutput, EAX ; записываем хэндл в переменную

invoke WriteConsoleA, ; переводим строку в консоли

hConsoleOutput, ; хэндл вывода

ADDR msg1310, ; адрес строки msg1310

SIZEOF msg1310, ; размер строки msg1310

ADDR NumberOfCharsWritten, ; сюда функция запишет число символов

0 ; lpReserved передаем, как ноль

invoke WriteConsoleA, ; пишем " Hello, World!"

hConsoleOutput,

ADDR msg1,

SIZEOF msg1,

ADDR NumberOfCharsWritten,

0

invoke WriteConsoleA, ; переводим строку

hConsoleOutput,

ADDR msg1310,

SIZEOF msg1310,

ADDR NumberOfCharsWritten,

0

invoke CharToOem, ADDR msg2, ADDR msg2 ; перекодируем Win1251 -> DOS

invoke WriteConsoleA, ; пишем " Нажмите Enter, чтобы выйти..."

hConsoleOutput,

ADDR msg2,

(SIZEOF msg2) - 1, ; уменьшаем размер строки msg2 на 1 (из-за нуля)

ADDR NumberOfCharsWritten,

0

invoke ReadConsoleA, ; ожидаем ввода в консоль

hConsoleInput, ; хэндл ввода

ADDR Buffer, ; адрес буфера

1, ; вводим 1 символ

ADDR NumberOfCharsRead, ; сюда функция запишет число символов

0 ; lpReserved передаем, как ноль

invoke ExitProcess, 0 ; сообщаем системе, что программа окончена

end start ; завершает сегмент кода

46. 75-21=? Нәтижесін есептеу программасын құрыңыз?

function Sum(X, Y: Integer): Integer;

begin

asm

mov ax,X

add ax,Y

mov @Result,ax

end;

end;

47-55

Бату

56-62

Мысал Казакшага аударындар

Рис. 2

4.4 Пошаговое выполнение работы

4.4.1 Включите ПК

Нажмите кнопку Power на системном блоке ПК.

4.4.2 Запустите файловый менеджер FAR Manager

После полной загрузки ОС Windows, нажмите кнопку Пуск и в Главном меню выберите команду Программы, в раскрывшемся подменю выберите FAR Manager, а затем щелкните на ярлыке FAR Manager, приложение запустится. Файловый менеджер можно запустить другим способом, дважды щелкнув левой клавишей мыши на ярлыке FAR Manager, размещенном на рабочем столе.

4.4.3 Установка дискеты в дисковод

Установите чистый флоппи-диск в накопитель для гибких магнитных дисков.

4.4.4 Ознакомьтесь с командами управления файлового менеджера FAR Manager

Команды управления файлового менеджера:

Сменить диск на левой панели, а затем на правой панели, используя команды Alt-F1 и Alt-F2 соответственно.

Смените активную панель FAR Manager клавишей TAB.

Включить/выключить линейку функциональных клавиш с помощью команды Ctrl-B.

Поменяйте информационные панели местами клавишей Ctrl-U.

Выключите/включите обе информационные панели, используя команду Ctrl-O.

Выключите/включите правую панель, а затем левую панель с помощью команд Ctrl-F1, Ctrl-F2.