PDA

View Full Version : تبدیل کاراکترهای کوچک یک رشته به بزرگ



HosseinProgrammer
جمعه 02 آذر 1386, 10:24 صبح
سلام. برنامه زیر برنامه ی ساده ی تبدیل کاراکترهای کوچک یک رشته به بزرگ است. با فرض اینکه تمام کاراکترها الفبا هستند.
ولی نتیجه ی درستی در صفحه نمایش چاپ نمیکند. میخواستم ببینم کسی میدونه مشکل کجاست؟

مطمئنا اشکال مربوط میشه به این خط ولی چرا؟!

mov [offset Buffer+len],'$'

ممنون اگر پاسخ دهید.


data segment
msg1 DB "Enter your sentences: ",'$'
STRList Label Byte
Max DB 20
Len DB ?
Buffer DB 20 Dup(?)
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
mov dx,offset msg1
mov ah,09h
int 21h

lea dx,STRlist
mov ah,0Ah
int 21h

mov dx,00FFh
mov ch,00h
mov cl,len
mov bx,offset buffer

L1:
mov al,[bx]
;and ax,dx
cmp al,'a'
jb L2
sub al,'a'-'A'
mov [bx],al
L2:
inc bx
loop L1

mov [offset Buffer+len],'$'

mov ah,09h
lea dx,buffer
int 21h



; wait for any key....
mov ah, 1
int 21h

mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start ; set entry point and stop the assembler.

hoax3r
جمعه 02 آذر 1386, 13:24 عصر
شما می خواهید آدرس buffer با مقدار len جمع بشه بعد مقدار این آدرس رو با '$' مقدار دهی کنید
خوب اینکارو که با یک دستور نمی شه انجام داد. خودش دو سه تا کار مختلفه
شما باید مقدار len رو داخل یه ثبات بزاری بعد با آدرس buffer جمع کنی
بعد '$' رو داخل آدرس بدست آمده بزارید



mov si, word ptr[len]
and si, 00FFh
mov buffer[si], '$'