Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model small
- .data
- string db 250,?, 256 dup ('$')
- .code
- start:
- mov ax,@data
- mov ds,ax
- mov ax,0b800h
- mov es,ax
- ; mov ax,3
- ; int 10h
- mov ah,10 ; Ввод строки с клавиатуры и запись её в массив символов
- lea dx,string
- int 21h
- ;посимвольно
- lea si,string+1 ; В данном случае si - регистр-источник для команды loadsb
- xor cx,cx
- mov cl,byte ptr [si]
- add si,cx
- mov di,160
- mov ah,10
- beg:
- std ; Устанавливаем флаг df в 1 для работы со строками
- lodsb ; Читаем символ в al и уменьшаем si на 1, так как df = 1
- cld ; Устанавливаем флаг df в 0 для работы со строками
- stosw ; Уменьшает регистр di на 2, так как df = 0
- loop beg
- ;по словам (разделитель - пробел)
- lea di,string+1
- mov si,320
- xor cx,cx
- mov cl,byte ptr [di]
- add di,cx
- inc cx
- mov dx,cx
- mov al,' '
- deg: push ds
- pop es
- std
- repnz scasb
- push di
- xchg dx,cx
- sub cx,dx
- add di,2
- dec cx
- mov ax,0b800h
- mov es,ax
- cld
- mov ah,12
- xchg si,di
- begs:
- lodsb
- stosw
- loop begs
- mov al,' '
- stosw
- mov si,di
- pop di
- mov cx,dx
- or cx,cx
- jnz deg
- mov ah,10h
- int 16h
- mov ah,4ch
- int 21h
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement