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.
ولی نتیجه ی درستی در صفحه نمایش چاپ نمیکند. میخواستم ببینم کسی میدونه مشکل کجاست؟
مطمئنا اشکال مربوط میشه به این خط ولی چرا؟!
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.