Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(Asm)Вывод строки с обработанными данными и как подсчитать значение счетчика

12K
28 ноября 2006 года
Lyalya_ua
25 / / 24.11.2006
С горем пополам написала протграму замены больших букв на маленькие. Теперь вот не знаю написала ла правильно, потому что не могу вывести результат (программа скорее всего делает не то что надо, а я даже этого узнать не могу) И вообще как задать значение счетчика сх , если заранее не извесно сколько елементов ввели.

MERCI!

Код:
.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
274
29 ноября 2006 года
Lone Wolf
1.3K / / 26.11.2006
Как неизвестно исло введеных символов? А в переменой len -что тогда?
Да и вобще, я конечно учитываю, что щас пол шестого утра и я жутко хочу спать, но я не понял ,как должно было работать твоя программа, и проверять тоже не захотел(кста, а 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
12K
29 ноября 2006 года
Lyalya_ua
25 / / 24.11.2006
God bless you man! Я еще не проверяла но ...... ;) ;) ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог