Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

M_Asm2009LS

.pdf
Скачиваний:
17
Добавлен:
23.02.2016
Размер:
2.34 Mб
Скачать

3

 

a x + 2,

c + d < 0,

0,

 

a + b > 1000,

а = 344

 

 

 

 

 

 

 

 

 

b =58

 

 

b x − 1,

c + d = 0,

x = a,

 

a + b = 1000,

 

 

 

 

 

f

 

c + d > 0 and x > d ,

 

 

a + b < 1000,

c = -300

 

= a + b,

1000,

d = 225

 

 

 

 

 

 

 

 

 

 

 

c + d ,

c + d > 0

and x = d ,

 

 

 

 

 

 

d x,

c + d > 0

and x < d ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

a + b, x = 0,

 

0,

a b,

а = 13

 

 

 

x > 0,

 

 

a = b and c > d,

b =26

 

 

a b,

 

a,

 

f

=

x < 0 and a > b,

x =

a = b and c < d ,

c = -255

 

 

a + d,

1,

d = 615

 

 

 

 

 

 

 

 

 

 

 

c + d,

x < 0 and a b,

c

a = b and c = d ,

 

5

 

x + b,

c = d,

 

d , a b,

а = 64

 

 

 

c > d ,

 

 

a = b and a > d ,

b =783

 

 

a b,

 

a,

 

f

=

c < d and a > b,

x =

a = b and a < d ,

c = 454

 

 

x + d ,

b,

d = -89

 

 

 

 

 

 

 

 

 

 

 

c + a,

c < d and a b,

c

a = b and a = d,

 

6

 

c + b,

 

a ≥ 10 and b ≠ 10,

c + 1,

c > d ,

а = 54

 

 

 

 

 

 

 

 

 

b =16

 

 

b c,

 

a ≥ 10 and b = 10,

x = c d ,

c = d ,

 

 

 

 

 

f

 

 

a < 10 and x > b ,

 

+ 1,

c < d,

c = -34

 

= a + b − 3,

d

d = -62

 

 

 

 

 

 

 

 

 

 

 

c + d ,

 

a < 10 and x = b,

 

 

 

 

 

 

d x,

 

a < 10 and x < b,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

a c,

 

b > a,

 

c,

 

a > d ,

а = 87

 

 

 

 

 

 

 

 

 

b =89

 

 

b + a,

 

b = a,

 

x = 1,

 

a = d ,

 

 

 

 

 

 

 

f

 

 

b < a and x > a,

 

+ 1,

a < d,

c = -87

 

= a + b x,

d

d = -64

 

 

 

 

 

 

 

 

 

 

 

c + d + 1,

b < a and x = a,

 

 

 

 

 

 

d x − 1,

b < a and x < a,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

a x + 2,

c + d < 0,

0,

 

a + b > 1000,

а = 76

 

 

 

 

 

 

 

 

 

b =48

 

 

b x − 1,

c + d = 0,

x = a,

 

a + b = 1000,

 

 

 

 

 

f

 

c + d > 0 and x > d ,

 

 

a + b < 1000,

c = -484

 

= a + b,

1000,

d = 382

 

 

 

 

 

 

 

 

 

 

 

c + d ,

c + d > 0

and x = d,

 

 

 

 

 

 

d x,

c + d > 0

and x < d,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

a + x,

x = 0,

 

0,

a b,

а = 484

 

 

 

x > 0,

 

 

a = b and a > d,

b =34

 

 

a x,

 

a,

 

f

=

x < 0 and c > b,

x =

a = b and a < d,

c = 433

 

 

a + d ,

1,

d = -43

 

 

 

 

 

 

 

 

 

 

 

c + d ,

x < 0 and c b,

c

a = b and a = d,

 

41

10

 

x + b,

c d and a = 10,

d ,

a b,

а = 10

 

 

 

c d and a ≠ 10,

 

a = b and a > d ,

b =13

 

 

a b,

a,

 

f

=

c < d and a > b,

x =

a = b and a < d ,

c = -18

 

 

x + d ,

b,

d = 676

 

 

 

 

 

 

 

 

 

 

 

 

c + a,

c < d and a b,

c

a = b and a = d,

 

11

 

c + x,

 

b ≥ 10 and a ≠ 10,

c + 1,

c d ,

а = 44

 

 

 

 

 

 

 

x =

 

 

b =103

 

 

b c,

 

b ≥ 10 and a = 10,

d

+ 1,

c < d ,

 

 

 

 

 

f

 

 

b < 10 and x > c ,

 

 

 

c = -34

 

= a + b − 3,

 

 

 

d = 625

 

 

 

 

 

 

 

 

 

 

 

 

c + d ,

 

b < 10 and x = c,

 

 

 

 

 

 

d x,

 

b < 10 and x < c,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

a c,

 

b > a,

 

c,

 

a > d + 10,

а = 554

 

 

 

 

 

 

 

 

 

 

b =103

 

 

b + a,

 

b = a,

 

x = a,

 

a = d + 10,

 

 

 

 

 

 

 

f

 

 

b < a and x > c,

 

+ 1,

a < d + 10,

c = 304

 

= a + c x,

d

d = -66

 

 

 

 

 

 

 

 

 

 

 

 

x + d − 1,

b < a and x = c,

 

 

 

 

 

 

d x + 1,

b < a and x < c,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

a x,

c < 0 and x > d ,

−1, a > 255,

а = 344

 

 

 

 

 

 

 

 

 

 

b =58

 

 

b x,

c < 0 and x = d ,

a,

a = 255,

 

f

 

c < 0 and x < d ,

x =

a < 255 and b = 255,

c = -300

 

= a + b,

b,

d = 225

 

 

 

 

 

c > 0 ,

 

a < 255 and b ≠ 255,

 

 

c + d + 255,

1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d x + 255,

c = 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

a x + 2,

 

c + d < 0,

c,

 

a > d + 10,

а = 13

 

 

 

 

 

 

 

 

 

 

b = 26

 

 

b x − 1,

c + d = 0,

x = a,

 

a = d + 10,

 

 

 

 

 

f

 

c + d > 0 and x > d ,

 

+ 1,

a < d + 10,

c = -255

 

= a + b,

d

d = 615

 

 

 

 

 

 

 

 

 

 

 

 

c + d ,

c + d > 0

and x = d ,

 

 

 

 

 

 

d x,

c + d > 0

and x < d ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

a + x,

x = 0,

 

 

−1, a > 255,

а = 64

 

 

 

x > 0,

 

 

 

a = 255,

b =783

 

 

a x,

 

 

a,

 

f

= a + d ,

x < 0 and c > b,

x = b, a < 255 and b = 255,

c = 454

 

 

 

 

 

 

 

 

 

 

d = -89

 

 

 

 

 

 

 

 

 

 

 

 

c + d ,

x < 0 and c b,

1,

a < 255 and b ≠ 255,

 

16

 

x + b,

c d and a = 10,

0,

a b,

а = 54

 

 

 

c d and a ≠ 10,

 

a = b and c > d,

b =16

 

 

a b,

a,

 

f

=

c < d and a > b,

x =

a = b and c < d ,

c = -34

 

 

x + d ,

1,

d = -62

 

 

 

 

 

 

 

 

 

 

 

 

c + a,

c < d and a b,

c

a = b and c = d,

 

42

17

 

a + x,

x = 0,

 

d ,

a b,

 

а = 87

 

 

 

 

x > 0,

 

 

a = b and a > d ,

b =89

 

 

a x,

 

a,

 

f

=

 

x < 0 and c > b,

x =

a = b and a < d

,

c = -87

 

 

a + d ,

b,

d = -64

 

 

 

 

 

 

 

 

 

 

 

 

 

c + d ,

x < 0 and c b,

c

a = b and a = d,

 

18

 

x + b,

c d and a = 10,

c + 1,

c ≥ 1 and d = 1

а = 76

 

 

 

 

c d and a ≠ 10,

 

 

c ≥ 1 and d ≠ 1,

b =48

 

 

a b,

x = c d ,

 

f

=

 

c < d and a > b,

 

 

c < d,

 

c = -484

 

 

x + d ,

d + 1,

 

d = 382

 

 

 

 

 

 

 

 

 

 

 

 

 

c + a,

c < d and a b,

 

 

 

 

 

19

 

c + x,

 

b ≥ 12 and a ≠ 24,

0,

a b,

 

а = 484

 

 

 

 

 

 

 

 

 

 

 

b =34

 

 

b c,

 

b ≥ 12 and a = 24,

a,

a = b and c > d,

 

f

 

 

 

b < 12 and x > c ,

x =

a = b and c < d ,

 

c = 433

 

= a + b − 3,

1,

 

d = -43

 

 

 

 

 

b < 12 and x = c,

 

a = b and c = d,

 

 

c + d ,

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d x,

 

b < 12 and x < c,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

a c − 255,

b > a,

d ,

a b,

 

а = 10

 

 

 

 

 

 

 

 

 

 

 

b =13

 

 

b + a + 255,

b = a,

a,

a = b and c > d

,

 

f

 

 

 

b < a and d > − x,

x =

a = b and c < d ,

c = -18

 

= b + c x,

b,

d = 676

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x + d − 1,

b < a and d = − x,

c

a = b and c = d ,

 

 

 

d x + 1,

b < a and d < −x,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.Задано два впорядкованих за зростанням масиви цілих знакових (беззнакових) чисел X, Y розмірності n. Розробити програму, що:

1)дописує масив X до масиву Y;

2)дописує масив Y до масиву X;

3)об’єднує обидва масиви в один упорядкований за зростанням масив;

4)додає до елементів масиву X відповідні елементи масиву Y.

5)додає до елементів масиву Y відповідні елементи масиву X.

6)віднімає від елементів масиву X відповідні елементи масиву

Y.

7)додає до елементів масиву Y найбільший елемент масиву X.

3.Задано масив X розмірності n знакових цілих чисел. Розробити програму:

1)масив упорядкувати за спаданням елементів;

2)масив упорядкувати за незростанням елементів;

3)знаходження найбільшого та найменшого елементів масиву;

43

4)знаходження різниці між найбільшим та найменшим елементами масиву;

5)обчислення кількості нульових елементів у масиві;

6)знаходження суми елементів масиву.

4.Задано масив X розмірності n знакових цілих чисел. Розробити програму:

1)впорядкування за спаданням елементів масиву;

2)впорядкування за незростанням елементів масиву;

3)знаходження суми найбільшого та найменшого елементів масиву;

4)суму додатних елементів масиву;

5)додавання до елементів масиву його найбільшого елемента;

6)одержання суми від’ємних елементів масиву.

5.Побудувати блок-схему та написати процедуру обчислення суми виразу

1

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

10

 

s = (100 + (−1)i (1 + 2 * i))

 

 

 

 

 

s = (−1)i (2 * i − 1)

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

3

12

(10 + (−1)i (24 + 2 * i))

 

 

 

4

 

15

 

 

s =

 

 

 

 

s = (−1)i (2 * i + (−1)i 3)

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

5

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

10

 

 

s = (−1)i (255 + (−1)i (3 * i))

 

 

s = (5 + (−1)i (3 * i − 5))

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

7

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

15

 

 

s = (−1)i (8 + (−1)i (4 + 2 * i))

 

 

s = (−1)i (2 * i + (−1)i 3)

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

9

17

((−1)i (1 + 4 * i)− 17)

 

 

 

 

 

10

 

13

 

 

s =

 

 

 

 

 

 

s = ((−1)i (2 * i − 13)+ 13 * i)

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

11

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

15

 

 

s = ((1 + 4 *i)− (−1)i+115)

 

 

s = (−1)i+1 (7 * i + (−1)i 3 * i)

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

13

15

 

i+1 (

 

 

 

 

 

 

 

 

))

 

14

 

18

(5 + (−1)i+1 (4 * i − 5))

s =

(−1)

+ (−1)

i (

 

 

 

s =

 

 

25

 

5 * i

 

 

 

 

 

 

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

15

20

 

i (

 

 

 

 

 

 

 

 

 

 

))

16

 

15

(−1)i ((−1)i+1 2 * i + (−1)i 3)

s =

(−1)

 

 

 

i+1 (

 

2 * i

s =

 

 

3 + (−1)

 

4 +

 

 

 

 

 

i=3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

17

12

(

 

 

 

 

i (

 

 

 

))

 

 

18

s =

21

(2 * i + (−1)i 3 * i)

 

s =

(8 * i + (−1)

 

4 + 2 * i

 

 

 

 

 

 

 

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

19

17

(

 

i (

)

− (−1)

i+1

 

 

 

)

 

20

s =

13

(−1)i ((−1)i (2 * i)+ 13* i)

 

s =

(−1)

4 * i

 

17

 

 

 

 

 

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

44

Лабораторна робота № 4 Введення-виведення символів і рядків

Мета: ознайомлення з можливостями введення-виведення текстової інформації за допомогою DOS та BIOS переривань. Розглянути способи виведення інформації на екран та введення з клавіатури.

План заняття.

1.Введення символів та рядків з клавіатури.

2.Виведення символів та рядків.

3.Приклади.

Теоретичні відомості

1. Введення символів та рядків з клавіатури

Введення символів і рядків з клавіатури в програмах мовою асемблера здійснюється за таким алгоритмом:

у регістр AH записується номер функції введення;

для введення рядка необхідно описати буфер певної структури і в регістр DX записати адресу цього буфера;

виконати команду int 21h.

Опишемо функції переривання 21h, які використовуються для введення інформації з клавіатури.

Функція 01h – використовується для введення символу з клавіатури

Вхід: AH=01h

Вихід: AL – ASCII код символу клавіші, яка була натиснута Опис: Очікує доти, поки не буде натиснута будь-яка клавіша.

Читає символ зі стандартного вхідного пристрою (клавіатури), ASCII код символу записує в регістр AL і відображує цей символ на стандартний вихідний пристрій (дисплей). Введення розширених клавіш (F1-F12, PgUp, курсор і т.п.) вимагає двох звернень до цієї функції. Перше звернення повертає AL=0, друге – повертає в AL розширений код ASCII.

Функція 07h

Вхід: AH=07h

Вихід: AL – ASCII код символу клавіші, яка була натиснута Опис: Читає символ зі стандартного вхідного пристрою та

записує ASCII код символу в регістр AL. Необхідно викликати двічі для введення розширених клавіш.

Функція 08h

Вхід: AH=08h

45

Вихід: AL – ASCII код символу клавіші, яка була натиснута Опис: Читає символ зі стандартного вхідного пристрою та

записує ASCII код символу в регістр AL. При виявленні Ctrl-Break виконується переривання INT 23H. Необхідно викликати двічі для введення розширених клавіш.

Функція 0ah

Введення рядка в буфер.

Вхід: AH=0ah

DS:DX – адреса вхідного буфера (дивися нижче) Вихід: буфер містить уведений рядок, що закінчується

символом CR (0dh)

Опис: Буфер за адресою DS:DX потрібно описати так:

 

Max

 

?

?

?

?

?

?

 

 

MAX – максимально припустима довжина рядка (від 1 до 254).

При виході буфер заповнений даними в такий спосіб:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Max

Len

T

E

X

T

0dh

 

Len – реальна довжина введеного рядка без врахування символу CR (0dh).

Символи зчитуються з клавіатури до символу повернення каретки CR (0dh). Якщо досягнуто довжини MAX, то включається консольний дзвінок для кожного чергового символу, поки не буде натиснута клавіша повернення каретки CR (Enter). Другий байт буфера заповнюється реальною довжиною введеного рядка, не враховуючи символу повернення каретки CR, який записується в буфер. Більшість розширених клавіш ігнорується. При розпізнаванні Ctrl-Break виконується переривання INT 23h (буфер залишається незмінним).

Функція 0ch

Введення з очищенням

Вхід: AH=0ch

AL – номер функції введення (01H, 06H, 07H, 08H або

0aH)

Вихід: немає

Опис: Очищає буфер від інформації, введеної раніше, а потім викликає функцію введення, яка задана в AL. Це змушує систему очікувати введення наступного символу.

2. Виведення символів та рядків

Виведення інформації в програмах мовою асемблера здійснюється

46

за допомогою функцій DOS (переривання 21h) або BIOS (переривання 10h). Для виведення потрібно виконати такі дії:

у визначені регістри процесора завантажити символ (який виводиться) або адресу буфера символьного рядка (який виводиться );

у регістр AH записати номер функції для виконання операції виведення;

виконати команду int 21h або int 10h.

Нижче наведено перелік функцій переривань 21h і 10h, які використовуються для виведення інформації.

Переривання 21h.

Функція 02h

Виведення символу

Вхід: AH=02h

DL= ASCII код символу, що виводиться

Вихід: немає

Опис: Функція переривання виводить символ на стандартний пристрій виведення. Обробляє символ Backspace (ASCII 8), переміщує курсор на одну позицію вліво і залишає його в новій позиції.

Функція 05h

Виведення на принтер.

Вхід: AH=05h

DL= ASCII код символу, що виводиться

Вихід: немає

Опис: Функція переривання виводить символ на стандартний пристрій друку. За замовчуванням це пристрій, який має логічне ім’я LPT1. Команда DOS MODE може перенаправляти це виведення.

Функція 09h

Виведення рядка.

Вхід: AH = 09h

DS:DX = адреса символьного рядка, що закінчується

символом '$'.

Вихід: немає

Опис: Рядок, окрім символу '$', виводиться на стандартний пристрій виведення. Символи Backspace обробляються як у функції 02h. Щоб перейти на новий рядок, у текст записують пару символів керування CR і LF (ASCII коди 13h і 0ah відповідно).

Переривання 10h.

Установка курсора

Функція 02h

Вхід: AH=02h

47

BH = відеосторінка

DH, DL = рядок, стовпчик (відраховуючи від 0)

Вихід: немає

Опис: Установлює курсор у позицію DH,DL. Установка курсора на рядок 25 робить курсор невидимим.

Функція 09h

Виведення символ/атрибут у поточній позиції курсора.

Вхід: AH=09h

BH = номер відеосторінки

AL = записуваний символ

CX = лічильник (скільки екземплярів символу

записати)

BL = відео атрибут (текст) або колір (графіка)

Вихід: немає

Опис: Виводить на екран у поточну позицію курсора символ із заданим атрибутом.

Функція 0ah

Виведення символу в поточній позиції курсора.

Вхід: AH=0ah

BH = номер відеосторінки

AL = записуваний символ

CX = лічильник (скільки екземплярів символу

записати)

Вихід: немає

Опис: Виводить на екран у поточну позицію курсора заданий символ.

Функція 13h

Виведення рядка.

Вхід: AH=13h

ES:BP – адреса рядка, який виводиться

CX − довжина рядка (підраховуються тільки символи) DH, DL − позиція (рядок, стовпчик) початку рядка BH − номер сторінки

AL − код під функції:

атрибут у регістрі BL:

BL= 0 – курсор без зміни

BL=1 – курсор у кінці рядка

BL=2 – формат рядка: char, attr,...; курсор без зміни BL=3 – формат рядка: char, attr,...; курсор у кінці рядка

Вихід: немає

48

Опис: Виводить рядок із позиції, в якій знаходиться курсор. Символи 0dh, 0ah, 08h і 07h трактуються як команди керування і не відображуються на екрані.

Деякі функції переривання 10h використовуються для виведення атрибута символу. Для кольорових адаптерів у текстовому режимі атрибут визначається так:

 

7

 

 

6

 

5

4

 

3

 

2

 

1

0

 

 

fgB

 

Background

 

 

brt

 

foreground

 

 

foreground – колір переднього плану (від 0 до 0f);

 

 

 

brt – інтенсивність: 1= передній план яскравості;

 

 

 

background – фоновий колір (від 0 до 7);

 

 

 

 

 

fg – мерехтіння: 1=передній план мерехтіння;

 

 

 

 

 

Відеоадаптер підтримує такі кольори:

 

 

 

 

 

00H

– чорний

 

 

08H – темно-сірий

 

 

 

01H

– синій

 

 

09H – яскраво-синій

 

 

02H

– зелений

 

 

0aH – світло-зелений

 

 

03H

– голубий

 

 

0bH – світло-блакитний

 

 

04H

– червоний

 

 

0cH – світло-червоний

 

 

05H

– рожевий

 

 

0dH – світло-рожевий

 

 

06H

– коричневий

0eH – жовтий

 

 

 

07H

– сірий

 

 

0fH – білий

 

 

 

 

 

 

Обчислити значення атрибута можна, використовуючи такий

вираз:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(фон * 16) + передній план + (128 для мерехтіння).

 

Приклад. Наведений нижче фрагмент програми ілюструє

процес виведення рядка на екран.

 

 

 

 

 

 

 

 

 

mov

AH,09H

 

;Вибір функції переривання

 

mov

DX,OFFSET STR

 

;Занесення в DX адреси

 

 

 

 

 

 

 

 

;рядка, який виводитиметься

 

int

 

21H

 

 

 

;виклик переривання

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

STR

DB

10,13,'Hello$'

;Опис рядка

 

 

 

Розвязування задач за тематикою заняття

Задача 1. Задано символьний рядок, який складається з декількох послідовностей символів, які розділяються не менше ніж одним символом пробіл (' '). Розробити програму, яка для заданого символьного рядка знаходить перше найбільше за довжиною слово, яке складається з букв латинського алфавіту.

Розв’язування.

49

Data

Segment

para 'Data'

max

= 255

 

 

string

db ' Input string

? ','$'

rez_p1

db ' The first word most : ','$'

rez_p2

db ' No words ','$'

inputs

label byte

 

maxs

db max

 

 

nums

db ?

 

 

strs

db max dup(' ')

 

Data

Ends

 

 

Code

Segment

para 'code'

 

Assume

cs:Code,ds:Data,es:Data

Main

Proc far

 

 

 

push DS

 

 

 

sub AX,AX

 

 

push AX

 

 

 

mov AX,Data

 

 

mov DS,AX

 

 

lea DX, string

; Завантаження відносної адреси повідомлення.

 

mov AH,09h

 

 

int 21h

 

; Виведення на екран повідомлення.

 

mov DL,0dh

; Переведення курсора на новий рядок.

 

mov AH,2

 

 

int 21h

 

 

 

mov DL,0ah

 

 

int 21h

 

 

 

lea DX,inputs

; Завантаження відносної адреси для

 

mov AH,0Ah

; введення рядка.

 

int 21h

 

; Введення рядка.

 

lea SI,strs

; Завантаження відносної адреси введеного

 

 

 

; рядка.

 

mov DH,' '

; Символ ‘ ‘ (пробіл) – у регістр DH.

 

mov AH,0

; Ознака виділеного слова.

 

mov BP,0

; Довжина найбільшого слова.

 

mov BX,0

; Довжина поточного слова.

 

mov CH,0

; Очищення регістра CH.

 

mov CL,nums

; Кількість введених символів у регістр CL.

 

cmp CX,0

; Перевірка: чи були введені символи.

 

jne m0

 

; Перехід, якщо були введені символи.

 

jmp mns

 

; Введених символів немає. Вихід з програми.

50

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]