Програма Алгоритм

Приклад 12. Довжина рядка символів в коді ASCII

Обробка символьної інформації

Тема 18. Літерно-цифровий код

Програма Алгоритм

  ORG 800H
  LXI D,SQTAB
  LDA ADDR1
  MOV L,A
  MVI H,0
  DAD D
  MOV A, M
  STA ADDR2
  HLT
SQTAB: DB 0,1,4,9,16,25,36,49
ADDR1: DB 4H
ADDR2: DB 0
  END

 

Коли мікро ЕОМ взаємодіє з відео терміналом або клавіатурою, необхідно звертатися до коду, який одночасно включає в себе числові та алфавітні знаки. Такі коди називають літерно-цифровими. Найбільш часто використовують літерно-цифровий код ASCII – американський стандартний код обміну інформацією. Повний код ASCII має коди цифр, великих та маленьких літер, знаків пунктуації та ознак команд.

 

В більшості областях використання МП необхідна обробка символьної інформації. Це необхідно не тільки при роботі з такими поширеними пристроями, як клавішні пульти, телетайпи, друкуючі пристрої та дисплеї, але і при взаємодії з ЕОМ. Коди символів в коді ASCII можуть оброблюватися як звичайні числа з використанням арифметичних операцій та операцій порівняння.

 

Необхідно визначити довжину рядка в коді ASCII, який розміщується в пам’яті, починаючи з адреси ADDR1. Кінець рядка помічено символом “крапка”, що має шістнадцятковий код 2EH. Результат необхідно розмістити в комірку за адресою ADDR1-1.

 

  ORG 800H
  MVI B,0 ;довжина рядка =0
  MVI A,’.’; завантаження крапки
NI: LXI H,ADDR1 ;початок рядка
  CMP M ; поточний символ ‘.’ ?
  JZ DOV ; так, йти до DOV
  INR B;ні,збільшити довжину на 1
  INX H
  JMP NI
DOV: MOV A,B
  STA ADDR1-1
  HLT
ADDR1: DB ‘A!0*.2H’
  END