Коректирывание кода нужно добавить массив - Assembler
Формулировка задачи:
Доброе время суток! Нужна помощь.. Надо покоректирывать код в него нужно добавить массив чтобы код выдавалбы сколько каких символов есть в фаиле... Помогите разобраться... Работаю на EMU8086.
ORG 100h START: ; lea dx,text1 mov ah,9 int 21h ;------------------- lea dx,max mov di,dx mov ah,0ah int 21h inc di xor bx,bx mov bl,[di] inc di mov byte ptr [di+bx],0 ;FAILO ATIDARYMAS mov ah, 3Dh mov al,0 mov dx,di int 21h jc error mov bx,ax mov si,ax mov ah, 3fh lea dx,cc mov cx,-1 int 21h test ax,ax jz error mov cx,ax mov di,dx mov ah, 3eh int 21h lea dx,text2 mov ah,9 int 21h call Schet call Bin2ASCII error: lea dx,errst mov ah,9 int 21h exit: xor ax,ax int 16h ret ; Bin2ASCII proc near mov bx, 10 oi2: xor dx,dx div bx push dx inc cx test ax, ax jnz oi2 mov ah, 02h oi3: pop dx add dl, '0' int 21h loop oi3 ret Bin2ASCII endp ;---------------------------- Schet proc near xor ax,ax m3: cmp byte ptr [di],00 jl short m4 cmp byte ptr [di],32 je short m4 cmp byte ptr [di],255 ja short m4 inc ax m4: inc di loop m3 ret Schet endp ;Duomenys text1 db 'vedi faila nazvanije: $' errst db 13,10, text2 db 13,10,'vasam faile stolko simbolov: $' cc: max db 80 len db ? fname: end start
Решение задачи: «Коректирывание кода нужно добавить массив»
textual
Листинг программы
MOV ecx,0 m3: CMP byte [edi],'F' INC edi JZ inc_f JMP m3 inc_f: INC ecx JMP m3
Объяснение кода листинга программы
В этом коде выполняется коррекция массива по определенному условию. Вот список шагов:
- MOV ecx,0 - в начале цикла устанавливается счетчик итераций в 0.
- m3: - это метка, которая обозначает начало цикла.
- CMP byte [edi],'F' - выполняется сравнение байта в памяти по адресу, который хранится в регистре edi, с символом 'F'.
- INC edi - если байт в памяти по адресу, который хранится в регистре edi, равен 'F', то этот адрес увеличивается на 1.
- JZ inc_f - если байт равен 'F', то выполняется переход на метку inc_f.
- JMP m3 - в противном случае выполняется переход на метку m3, чтобы продолжить цикл.
- inc_f: - это метка, которая обозначает операцию увеличения счетчика.
- INC ecx - если байт равен 'F', то счетчик увеличивается на 1.
- JMP m3 - после увеличения счетчика выполняется переход на метку m3, чтобы продолжить цикл.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д