
- •Знайти кількість елементів двовимірного масиву цілих чисел, які потрапляють в інтервал [-5, 10].
- •Кількість цілих чисел з діапазону [40, 280], які діляться на 3 та на 5.
- •Кількість непарних елементів одновимірного масиву цілих чисел:
- •Inc di ;збільшую di
- •Знайти кількість від’ємних елементів двовимірного масиву цілих чисел.
- •Виконати шифрування/дешифрування рядка символів, використовуючи операції циклічного зсування байтів рядка на задану кількість позицій.
- •Ввести рядок і слово. Перевірити, чи слово входить у рядок. Знайти позицію входження. (трошки не працює).
- •Використовуючи логічні операції знайти контрольну суму рядка символів. Контрольна сума – це кількість одиниць у двійковому записі кодів символів.
- •Ввести речення. Відредагувати його так, щоб між словами було не більше одного пропуску.
- •Ввести рядок з клавіатури і посортувати символи в алфавітному порядку.
- •Int 21h ; ввести рядок
- •Написати програму на мові Assembler, яка підраховує кількість одиничних бітів у введеному з клавіатури слові.
- •Ввести рядок з клавіатури і порахувати кількість символів у слові.
Int 21h ; ввести рядок
and ax,ax ; чи введено будь-які символи?
jz Done ; ні, перехід на кінець програми
mov cx,ax ; записати кількість введених символів в регістр CX
push cx ; запам’ятати регістр CX у стеку
mov bx,OFFSET integer ; занести у BX адресу введеного рядка
mov si,OFFSET ReverseString; занести у SI адресу рядка результату
add si,cx
dec si ; адреса кінця рядка результату
m1:
mov al,[bx] ; отримати наступний символ введеного рядка
mov [si],al ; записати цей символ у рядок результату
inc bx ; вказівник на наступний символ введеного рядка
dec si ; вказівник на наступний символ рядка результату
loop m1 ; виконати цикл
pop cx ; отримати зі стеку довжину рядка
mov ah,40h ; номер функції DOS для виведення даних
mov bx,1 ; дескриптор дисплея
mov dx,OFFSET ReverseString ; адреса рядка для виведення
int 21h ; надрукувати рядок
Done:
mov ah,4ch ; номер функції DOS для завершення програми
int 21h ; завершити програму та вийти у DOS
END ; кінець програми
Написати програму на мові Assembler, яка підраховує кількість одиничних бітів у введеному з клавіатури слові.
.8086
.model small
.stack 100h
.data
maxl = 12
S db maxl,?,maxl dup ('0') ;максимальна довжина рядка (буфер для рядка)
C db 0
msg db 'Input word :$'
.code
.startup
mov ah,9h ;функція виведення на екран
lea dx,msg
int 21h
mov ah,0AH ;функція введення з клавіатури
lea dx,S
int 21h
xor cx,cx
mov cl,byte ptr s+1 ;реальна довжина рядка, як кількість повторень циклу
lea bx,s+2-1
add bx,cx
m1: push CX ; значення заносимо в стек щоб організувати вкладений цикл;
mov al,byte ptr[bx]
mov cx,8 ;кількість повторень внутрішнього циклу
m2: shr al,1 ;зсув вправо
jnc m3 ;якщо в CF 0 то не збільшуємо суму
inc c
m3: loop m2
pop cx
loop m1
sub c,3 ;віднімаємо кількість одиничних бітів коду клавіші ENTER
.exit 0
end @startup
Ввести рядок з клавіатури і порахувати кількість символів у слові.
.8086
.model small
.stack 100h
.data
maxl = 30
S db maxl,?,maxl dup ('0') ;макс. довжина рядка,реальна довж.,буфер для рядка
C db 0
msg db 'Input string :$'
.code
.startup
mov ah,9h ;функція виведення на екран
lea dx,msg
int 21h
mov ah,0AH ;функція введення з клавіатури
lea dx,S
int 21h
xor cx,cx
mov al,byte ptr s+1 ;кількість символів у слові
mov c,al
.exit 0
end @startup