.model small
.stack 100h
.data
max db 255
len db ?
string db 255 dup (?)
current db ?
InputMessage db 'Dear user please enter the string with any characters',13,10,'$'
ResultMessage db 'Resulting sting after changing every capital letter into small one',13,10,'$'
count dw 0
cret db 13,10,'$'
.code
begin:
mov ax, 003h
int 10h ;ocistka ekrana
mov ax, @data
mov ds, ax ;ustanavlivaem registr ds takim obrazom 4to bi on ukazival na segment dannih
mov ah,09h ;vivod stroki priglasheniya
lea dx, InputMessage
int 21h ;read the string
mov ah,0ah ;vvod stroki
lea dx,max
int 21h
ret
mov ax,003h
int 10h ;ocistka ekrana
mov ah,00h
lea dx, ResultMessage
int 21h
xor bx,bx
mov bl,len
mov di,bx
mov byte ptr string[di],'$' ;zakancivaem stroku simvovlom $
mov dx, offset string ;vivod vvedennoi stroki
mov ah,9
int 21h
go:
xor ax,ax
lodsw
mov current,al
mov cx, 10
next_element:
cmp current, 41h
jl go
cmp al, 5Ah
jg go
add current, 20h
skip_symbol:
dec cx
jnz next_element
cwd
mov dx,offset ResultMessage ;vivod soobs4eniya-result
mov ah,9
int 21h
mov ah,4ch ;obicnoe zavershenie programi
int 21h
end begin
(Asm)Вывод строки с обработанными данными и как подсчитать значение счетчика
С горем пополам написала протграму замены больших букв на маленькие. Теперь вот не знаю написала ла правильно, потому что не могу вывести результат (программа скорее всего делает не то что надо, а я даже этого узнать не могу) И вообще как задать значение счетчика сх , если заранее не извесно сколько елементов ввели.
Да и вобще, я конечно учитываю, что щас пол шестого утра и я жутко хочу спать, но я не понял ,как должно было работать твоя программа, и проверять тоже не захотел(кста, а ret, то зачем??)
Вобщем, я по бырику по твоему коду поправил, вроде работает
Код:
.model small
.stack 100h
.data
max db 255
len db ?
string db 255 dup (?)
current db ?
InputMessage db 'Dear user please enter the string with any characters',13,10,'$'
ResultMessage db 13,10,'Resulting sting after changing every capital letter into small one',13,10,'$'
res db 255 dup (?)
count dw 0
cret db 13,10,'$'
.code
begin:
mov ax, 003h
int 10h ;ocistka ekrana
mov ax, @data
mov ds, ax ;ustanavlivaem registr ds takim obrazom 4to bi on ukazival na segment dannih
mov ah,09h ;vivod stroki priglasheniya
lea dx, InputMessage
int 21h ;read the string
mov ah,0ah ;vvod stroki
lea dx,max
int 21h
mov ax,003h
int 10h ;ocistka ekrana
xor bx,bx
mov bl,len
mov di,bx
mov byte ptr string[di],'$' ;zakancivaem stroku simvovlom $
mov dx, offset string ;vivod vvedennoi stroki
mov ah,9
int 21h
lea si,string
xor cx,cx
mov cl,len
push ds
pop es
lea di,res
cwd
go:
xor ax,ax
lodsb
cmp al, 41h
jl scip
cmp al, 5Ah
jg scip
add al, 20h
scip:
stosb
loop go
mov dx,offset ResultMessage ;vivod soobs4eniya-result
mov ah,9
int 21h
mov dx,offset res ;vivod soobs4eniya-result
mov ah,9
int 21h
mov ah,4ch ;obicnoe zavershenie programi
int 21h
end begin
.stack 100h
.data
max db 255
len db ?
string db 255 dup (?)
current db ?
InputMessage db 'Dear user please enter the string with any characters',13,10,'$'
ResultMessage db 13,10,'Resulting sting after changing every capital letter into small one',13,10,'$'
res db 255 dup (?)
count dw 0
cret db 13,10,'$'
.code
begin:
mov ax, 003h
int 10h ;ocistka ekrana
mov ax, @data
mov ds, ax ;ustanavlivaem registr ds takim obrazom 4to bi on ukazival na segment dannih
mov ah,09h ;vivod stroki priglasheniya
lea dx, InputMessage
int 21h ;read the string
mov ah,0ah ;vvod stroki
lea dx,max
int 21h
mov ax,003h
int 10h ;ocistka ekrana
xor bx,bx
mov bl,len
mov di,bx
mov byte ptr string[di],'$' ;zakancivaem stroku simvovlom $
mov dx, offset string ;vivod vvedennoi stroki
mov ah,9
int 21h
lea si,string
xor cx,cx
mov cl,len
push ds
pop es
lea di,res
cwd
go:
xor ax,ax
lodsb
cmp al, 41h
jl scip
cmp al, 5Ah
jg scip
add al, 20h
scip:
stosb
loop go
mov dx,offset ResultMessage ;vivod soobs4eniya-result
mov ah,9
int 21h
mov dx,offset res ;vivod soobs4eniya-result
mov ah,9
int 21h
mov ah,4ch ;obicnoe zavershenie programi
int 21h
end begin
God bless you man! Я еще не проверяла но ...... ;) ;) ;)