- •1Написать программу на ассемблере ia-16, вычисляющую максимальное значение числа n, при котором n! не
- •4Написать программу, вычисляющую максимальное значение числа n, при котором n! не переполняет 4 байта
- •7Напишите последовательность команд, корректно работающую со стеком без использования команд pop и push с применением базой индексной адресации и выполняющую перечисленные ниже задачи:
- •8Написать программу на ассемблере ia-16, вычисляющую максимальное значение числа n, при котором n!
- •9Написать программу на языке ассемблер ia-16, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую разность х - у. Параметры передаются через стек процессора
- •13Написать программу для ввода с клавиатуры натурального числа порядка n с последующим его преобразованием в машинное представление
- •14Написать программу, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую разность х - у. Параметры передаются через регистры процессора
- •16. Написать программу на языке ассемблер ia-16, преобразующую строку байтов длинной n, являющихся ascii-кодами десятичных цифр, в машинное представление
7Напишите последовательность команд, корректно работающую со стеком без использования команд pop и push с применением базой индексной адресации и выполняющую перечисленные ниже задачи:
Вытолкнуть первые два элемента из стека, сложить их и поместить результат в стек.
Скопировать пятый элемент от вершины стека в регистр dx.
Удалить из стека 10 элементов.
.model small
.stack 100h
.data
.code
start:
mov ax, @data
mov ds, ax
mov si, 0
k1: sub sp, 2
mov bp, sp
mov [bp], si
inc si
cmp si, 11
jne k1
mov bp, sp
mov ax, [bp]
add bp, 2
add ax, [bp]
mov [bp], ax
mov sp, bp
mov bp, sp
add bp, 8
mov dx, [bp]
add sp, 20
mov ax, 4C00h
int 21h
end start
8Написать программу на ассемблере ia-16, вычисляющую максимальное значение числа n, при котором n!
не переполняет двойное слово
.model small
.386
.stack 100h
.data
.code
START: mov ax, @data
mov ds, ax
xor ax, ax
mov si, 1
mov bx, 1; тут будет храниться наш факториал
mov cx, 0
xor dx, dx
fact:
inc si
mov ax, cx
mul si
jo FINISH
mov cx, ax
mov ax, bx
mul si
mov bx, ax
add cx, dx
jo FINISH
jmp fact
FINISH:xor ax, ax
dec si; тут ответ
MOV AX, 4C00h
INT 21h
END START
9Написать программу на языке ассемблер ia-16, в которой определены две переменных х и у двойные слова и подпрограмму, вычисляющую разность х - у. Параметры передаются через стек процессора
.model small
.stack 100h
.data
x dd 1287432
y dd 0056363
otv dd ?
.code
start:
mov ax, @data
mov ds, ax
push ax; выделим место в стеке для того, чтоб записать туда ответ
push ax; сейчас закинули туда мусор
mov bx, offset y
push [bx]
push [bx + 2]
mov bx, offset x
push [bx]
push [bx + 2]
call mimi
pop ax
pop ax
pop ax
pop ax
mov bx, offset otv
pop [bx + 2]
pop [bx]
mov ax, 4C00h
int 21h
mimi proc
mov bp, sp
mov ax, [bp + 4]
sub ax, [bp + 8]
mov [bp + 12], ax
jnc k1
mov bx, 1
jmp k2
k1:
mov bx, 0
k2:
mov ax, [bp + 2]
sub ax, [bp + 6]
sub ax, bx
mov [bp + 10], ax
ret
mimi endp
end start
13Написать программу для ввода с клавиатуры натурального числа порядка n с последующим его преобразованием в машинное представление
.model small
.stack 100h
.data
.code
start:
mov ax, @data
mov ds, ax
xor cx,cx
read:
mov ax, 0
mov ah, 01h
int 21h
mov ah, 0
cmp al, 30h
jb k1
cmp al, 39h
ja k1
sub al, 30h
mov bx, ax
mov ax, cx
mov cx, 10
mul cx
mov cx, ax
add cx, bx
jmp read
; в сх ответ
k1: MOV AX, 4C00h
INT 21h
END START
