Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

і Елементи такого формату відомі як строкові дані і можуть бути як символьними так і числовими

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 25.11.2024

Постановка задачі:

Задано текст, що містить літери й цифри. Замінити у ньому кожну цифру її словесним англійським найменуванням. У випадку відсутності в тексті цифр вивести відповідне повідомлення.

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

Часто, буває необхідно переслати або порівняти поля даних, які перевищують по довжині одне слово. Наприклад, необхідно порівняти описи або імена для того, щоб відсортувати їх у висхідній послідовності. Елементи такого формату відомі як строкові дані і можуть бути як символьними, так і числовими. Для обробки строкових даних асемблер має п'ять команд обробки рядків:
MOVS переслати один байт чи одне слово з однієї області пам'яті в іншу;
LODS завантажити з пам'яті один байт у регістр AL чи одне слово в регістр AX;
STOS записати вміст регістра AL чи AX у пам'ять;
CMPS порівняти вміст двох областей пам'яті, розміром в один байт або в одне слово;
SCAS порівняти вміст регістра AL чи AX із умістом пам'яті.
Префікс
REP дозволяє цим командам обробляти рядки будь-якої довжини.

Команди пересилання: movsb, movsw, movsd, movsq, movs приймач, джерело.

Команда виконує пересилання з області пам’яті DS:SI в область пам’яті ES:DI; змінює вміст регістрів SI, DI на довжину оброблюваного елемента.

Префікси повторення:

  1.  REP – виконується команда, перед якою стоїть префікс; змінюється вміст регістрів SI, DI; вміст регістра CX зменшується на 1; перевіряється умова CX=0. Якщо CX=0, то закінчується виконання команди
  2.  REPE\REPZ - виконується команда, перед якою стоїть префікс, поки CX≠0 та zf=1
  3.  REPNE\REPNZ - виконується команда, перед якою стоїть префікс, поки CX≠0 та zf=0

Команда порівняння: cmpsb, cmpsw, cmpsd, cmpq, cmps приймач, джерело.

Команда виконує віднімання вмісту пам’яті, що знаходиться за адресою ES:DI, від вмісту пам’яті, що знаходиться за адресою DS:SI. Встановлює флаги zf, sf, of. Змінює вміст регістрів SI, DI на довжину оброблюваного елемента.

Команда пошуку (сканування): scasb, scasw, scasd, scasq, scas приймач.

Команда виконує віднімання вмісту пам’яті, що знаходиться за адресою ES:DI, від вмісту регістра AL (AX). Встановлює флаги zf, sf, of, pf, af, cf. Змінює вміст регістра DI на довжину оброблюваного елемента.

Команда завантаження елементів з ланцюжка: lodsb, lodsw, lodsd, lodsq, lods джерело.

Команда виконує завантаження вмісту пам’яті, що знаходиться за адресою DS:SI в один з регістрів AL (AX).

Змінює вміст регістра SI на довжину оброблюваного елемента.

Команда завантаження елементів в ланцюжок: stosb, stosw, stosd, stosq, stos приймач.

Команда виконує завантаження вмісту регістрів AL (AX) в пам’яті, що знаходиться за адресою ES:DI.

Змінює вміст регістра DI на довжину оброблюваного елемента.

Додаток. Текст програми.

;Роботу виконала студентка гр.ПМ-10-1 Пильник Оксана

data segment para public 'data'

oe db 'one', 10, 13, '$'

t db 'two', 10, 13, '$'

th db 'three', 10, 13, '$'

f db 'four', 10, 13, '$'

fi db 'five', 10, 13, '$'

ix db 'six', 10, 13, '$'

s db 'seven', 10, 13, '$'

ei db 'eight', 10, 13, '$'

n db 'nine', 10, 13, '$'

z db 'zero', 10, 13, '$'

mes1 DB 'ishodnaya stroka:  ', '$'

mes2 DB 'rezyltat:  ', '$'

mes3 DB 'net tsufr', '$'

StrAdd DB 250 DUP(?), 10, 13, '$'

buf DB 250

BLen DB ?

StrIn DB 250 DUP(?), 10, 13, '$'

StrLen DW ?

data ends

stk segment para stack 'stack'

DB 256 dup(?)

stk ends

codes segment para public 'code'

    assume CS:codes, DS:data, SS:stk, ES:data

main proc far

push DS

sub AX, BX

push AX

mov AX, data

mov DS, AX

mov AX, data

mov DS, AX

mov ES, AX

mov AH, 0

mov AL, 3 ;очистка экрана

int 10h

mov AH, 10

lea DX, buf ;ввод символов с клавиатуры

int 21h

mov BL, BLen

xor BH, BH

mov StrLen, BX

mov StrIn[BX], ' '

mov StrIn[BX+1], 10

mov StrIn[BX+2], 13

mov StrIn[BX+3], '$'

add StrLen, 4

sub dx,dx

cld

lea SI, StrIn

lea DI, StrAdd

mov CX, StrLen

rep movsb          ;StrAdd=StrIn

s1:cld

  mov al, '1'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m11

  jmp s2

m11:add dx,1

   dec di

   sub bx, bx

   mov cx, 3

   m12:mov al, oe[bx]

      stosb

      inc bx

      loop m12

  loop s1

s2:cld

  mov al, '2'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m21

  jmp s3

m21: add dx,1

    dec di

    sub bx, bx

    mov cx, 3

    m22:mov al, t[bx]

      stosb

      inc bx

      loop m22

  loop s2

s3:cld

  mov al, '3'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m31

  jmp s4

m31: add dx,1

    dec di

    sub bx, bx

    mov cx, 5

    m32:mov al, th[bx]

      stosb

      inc bx

      loop m32

  loop s3

s4:cld

  mov al, '4'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m41

  jmp s5

m41: add dx,1

    dec di

    sub bx, bx

    mov cx, 4

    m42:mov al, f[bx]

      stosb

      inc bx

      loop m42

  loop s4

s5:cld

  mov al, '5'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m51

  jmp s6

m51: add dx,1

    dec di

    sub bx, bx

    mov cx, 4

    m52:mov al, fi[bx]

      stosb

      inc bx

      loop m52

  loop s5

s6:cld

  mov al, '6'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m61

  jmp s7

m61: add dx,1

    dec di

    sub bx, bx

    mov cx, 3

    m62:mov al, ix[bx]

      stosb

      inc bx

      loop m62

  loop s6

s7:cld

  mov al, '7'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m71

  jmp s8

m71: add dx,1

    dec di

    sub bx, bx

    mov cx, 5

    m72:mov al, s[bx]

      stosb

      inc bx

      loop m72

  loop s7

s8:cld

  mov al, '8'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m81

  jmp s9

m81: add dx,1

    dec di

    sub bx, bx

    mov cx, 5

    m82:mov al, ei[bx]

      stosb

      inc bx

      loop m82

  loop s8

s9:cld

  mov al, '9'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m91

  jmp s0

m91: add dx,1

    dec di

    sub bx, bx

    mov cx, 4

    m92:mov al, n[bx]

      stosb

      inc bx

      loop m92

  loop s9

s0:cld

  mov al, '0'

  mov cx, StrLen

  lea di, StrIn

  repne scasb

  je m01

  jmp next

m01: add dx,1

    dec di

    sub bx, bx

    mov cx, 4

    m02:mov al, z[bx]

      stosb

      inc bx

      loop m02

  loop s0

next: cmp dx, 0

     jne exit

     mov AH, 0        ;вывод  на экран

     mov AL, 3

     int 10h

     lea DX, mes3

     mov AH, 09h

     int 21h

     jmp l1

exit: mov AH, 0        ;вывод  на экран

     mov AL, 3

     int 10h

lea DX, mes1

mov AH, 09h

int 21h

lea DX, StrAdd

mov AH, 09h

int 21h

lea DX, mes2

mov AH, 09h

int 21h

lea DX, StrIn

mov AH, 09h

int 21h

l1: ret

main endp

codes ends

end main




1. Тема 4 Політичні партії та громадські організації Політичні партії та їх історичні типи
2. реферат на здобуття наукового ступеня кандидата економічних наук Киї
3. Новое австрийское кино
4. Тема- Ответы на отказ
5. Контрольна робота Виконала студентка групи МТУз 1 Перевірила
6. Лабораторная работа 13 Регрессионный анализ
7. Гісторыя першабытнаабшчыннага ладу на тэрыторыі Беларусі
8.  Біографічні відомості рік та місце народження відомості про родину успіхи у навчанні у школі та ін
9.  Характеристика технологічного об~єкту деасфальтизації гудрону бензином процес добен як об~єкту контр
10. Ястреб Для того чтобы вступить в сполртивный клуб Ястеб нужно представить перечень документов- За
11. Задание 1 Создать и отформатировать шаблон таблицы таб1
12. на тему- Управление вексельной эмиссией банка Рабо
13. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата економічних наук ЛЬВІВ2004
14. Реферат- Обратные связи в живых системах
15. Тема Визначення технічних характеристик комп~ютера за допомогою програмних засобів
16. от антигенов; 2 от кровопотери; 3 от внутрисосудистого свертывания
17. БАНК ПРОЕКТНОГО ФИНАНСИРОВАНИЯ Закрытое акционерное общество отозвана лицензия на осуществление банков1
18. Лекция 1 ТУРИСТИЧЕСКОЕ КРАЕВЕДЕНИЕ УКРАИНЫ- ОБЪЕКТ ПРЕДМЕТ ОСНОВНЫЕ ЗАДАЧИ И ТЕОРЕТИКОМЕТОДОЛОГИЧЕСКИЕ
19. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата медичних наук Запоріжжя ~
20. Витебский государственный университет им