Показать сообщение отдельно

  #132  
Старый 19.12.2007, 12:30
***Dr.Freez***
Новичок
Регистрация: 07.12.2007
Сообщений: 3
С нами: 9698420

Репутация: 0
Exclamation

Помогите в написании задания для курсача асм и тоже самое на паскале
Дана строка "YoU ArE DeAd!!!" перевести её в вверхний регист, затем в нижний и вывести все три сторки(искодня, верхний регистр, нижний)....
есть маленькие наработки
Цитата:
masm
.model small
.486
.data
s1 db 'YoU ArE DeAd!!!'
len equ $-s1
db '$'
.code
start:
mov ax, @data
mov ds, ax
mov es, ax

cld ; установить флаг направления в сторону увеличения
; адресов
mov cx, len ; размер строки s1 в СХ
lea si, s1 ; адрес первого элемента в SI
mov di, si ; тот же адрес в DI

next:
lodsb ; загрузить символ строки s1 в регистр AL
cmp al, 65 ; AL < 'a'?
jb skip ; вне диапазона, пропустить
cmp al, 90 ; AL > 'z'
ja skip ; вне диапазона, пропустить
add al,32 ; преобразовать символ из диапазона в 'A' - 'Z'
; в символ из диапазона 'a'-'z'

;next:
; lodsb ; загрузить символ строки s1 в регистр AL
; cmp al, 97 ; AL < 'a'?
; jb skip ; вне диапазона, пропустить
; cmp al, 122 ; AL > 'z'
; ja skip ; вне диапазона, пропустить
; sub al, 32 ; преобразовать символ из диапазона в 'a' - 'z'
; ; в символ из диапазона 'A'-Z'
skip:
stosb
loop next
jmp exit
exit:
lea dx, s1
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
end start

 
Ответить с цитированием