Чередование 3 строчных и 3 заглавных букв - Assembler
Формулировка задачи:
Здравствуйте, дали задание чередования символов, 3 заглавных и 3 строчных. Я делал чередование 1 заглавный и 1 строчный. Может кто помочь? Пожалуйста. Мне осталось 1 работу сдать для зачета.
Вот код:
.model small
.386
.data
stroka db " ABCDEFGHIJKLMNOPQRSTU"
len equ $-stroka
db '$'
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
cld
mov cx,len
lea si,stroka
mov di,si
mov bx,0
next:
lodsb
cmp al,65
jb @@1
cmp al,90
ja @@1
cmp bx,0
je @@2
add al,32
xor bx,bx
jmp @@1
@@2:
mov bx,1
@@1:
stosb
loop next
jmp exit
exit:
lea dx,stroka
mov ah,9h
int 21h
mov ax,4c00h
int 21h
end startРешение задачи: «Чередование 3 строчных и 3 заглавных букв»
textual
Листинг программы
inc bx cmp bx,3 jbe @@2 add al,32 @@2: cmp bx,6 jb @@1 xor bx,bx @@1:
Объяснение кода листинга программы
- Сначала происходит инкремент регистра BX.
- Затем происходит сравнение значения регистра BX с 3.
- Если значение регистра BX меньше или равно 3, то происходит переход к метке @@2.
- Значение регистра BX увеличивается на 32.
- Затем происходит сравнение значения регистра BX с 6.
- Если значение регистра BX меньше 6, то происходит переход к метке @@1.
- Значение регистра BX устанавливается равным 0.