Подсчет количества символов в строке - Assembler

Узнай цену своей работы

Формулировка задачи:

Как сделать чтобы считались символы в строке
data segment
     string db 100,100 dup ('$')
data ends
 
code segment
assume cs:code,ds:data
start:
    mov    di,1000h    
    mov    cx,0FFh       
 
    mov    al,es:[di]   
    cmp    al,01h       
    jne    l1     
    inc    simbols       
 
    add    di,10h       
    loop    l2     
    mov    ?,simbols    
    ret.data
simbols    db    0  
code ends
end start

Решение задачи: «Подсчет количества символов в строке»

textual
Листинг программы
    lea si, string
    mov ax, 0 ;загрузка длины строки в регистр ax
    mov al, [si]

Объяснение кода листинга программы

  1. lea si, string - в данном коде используется инструкция LEA (Load Effective Address), которая загружает в регистр SI адрес строки.
  2. mov ax, 0 - в регистр AX загружается начальное значение 0, которое будет использоваться как счетчик для подсчета количества символов в строке.
  3. mov al, [si] - значение байта из строки загружается в регистр AL. Дальше код продолжается, но эти три пункта выполняются при начале работы программы и являются ключевыми для понимания задачи.

Оцени полезность:

13   голосов , оценка 4.308 из 5