
19.12.2007, 12:30
|
|
Новичок
Регистрация: 07.12.2007
Сообщений: 3
С нами:
9698420
Репутация:
0
|
|
Помогите в написании задания для курсача асм и тоже самое на паскале
Дана строка "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
|
|
|