ورود

View Full Version : کمک در تکمیل کد



bermoda_khatar69
دوشنبه 20 آذر 1391, 22:18 عصر
سلام

من می خوام کدی رو با اسمبلی بنویسم که از ورودی هر نوع کارکتری رو بگیره و بعد از زدن کارکتر نقطه کارکتر کوچک رو به بزرگ و بالعکس تبدیل کنه؟


.model small
.stack 100h
.data
msg1 db "input char= $"
en db 13,10,'$'
msg2 db "output char= $"
temp db 50 dup(?)

.code
main proc


mov ax,@data
mov ds,ax

mov ah,09h
mov dx,offset msg1
int 21h

p1: mov ah,01h
int 21h

mov temp,al

cmp temp,'A'
jb p1



cmp temp,'Z'
ja p2



add temp,32

mov ah,02h
int 21h
mov dl,temp

p2: cmp temp,'a'
jb p2

cmp temp,'z'
ja p1

dec temp,32


mov ah,09h
mov dx,offset en
int 21h

mov ah,09h
mov dx,offset msg2
int 21h

mov ah,02h
mov dl,temp
int 21h

mov ah,4ch
int 21h

main endp
end main

hamed-lavafi
سه شنبه 21 آذر 1391, 23:10 عصر
باید با XOR کردن کاراکتر این کارو بکنی.
همونطور که میدونی XOR مقایسه رو به این صورت انجام میده که هرجا در پارامتر اول 1 داشته باشیم، همونجا در پارامتر دوم معکوس میکنه، و این رو هم باید بدونی که هر حرف کوچک با حرف معادل بزرگ اون، توی بیت ششم باهم تفاوت دارن.
پس باید برای پارامتر اول به XOR عدد 00100000 و بجای عملگر دوم، کاراکتر مورد نظر رو بهش بدی.