PDA

View Full Version : سوال: مهم : یک برنامه ساده اسکرین سرور دارم



masa joon
دوشنبه 16 خرداد 1390, 22:24 عصر
:گریه:سلام من یک برنامه ساده اسکرین سرور دارم به زبان اسمبلی که باید یک مقدار در مورد کد هاش برای استاد توضیح بدم اما چیزی سر در نمییارم میشه یک مقدار توضیح بدید که این برنامه چه جوری کار میکنه؟ که من بتونم یک توضیحی برای استادم بدم؟
لطفا هر چه سریع تر پاسخ بدید برنامه کوچک هست و وقتتون رو نمیگیره.ممنون:گریه::گریه::گر یه::گریه::گریه::گریه:


DSEG SEGMENT 'DATA'
str db 'aaaaaaaaaa'
len db 0
DSEG ENDS
SSEG SEGMENT STACK 'STACK'
db 256 DUP(0)
SSEG ENDS
CSEG SEGMENT 'CODE'
START PROC FAR
; set segment registers:
MOV AX, DSEG
MOV DS, AX
MOV ES, AX

mov ah,1
mov si,0
inputstr:
add len,1
int 21h
mov str[si],al
add si,1
cmp al,13
jne inputstr
starts:
mov cx,80
sub cl,len
mov dl,al
mov ah,2h
mov bl,0
mov dh, 13

jolo:
mov bh, 0
mov dl, bl
int 10h
mov dl,' '
int 21h
add bl,1

mov si,0
p1:
mov dl,str[si]
int 21h
add si,1
cmp str[si],13
jne p1
loop jolo
mov cl,bl
aghab:
mov bh, 0
mov dl, cl
int 10h
mov si,0
p2:
mov dl,str[si]
int 21h
add si,1
cmp str[si],13
jne p2
sub bl,1
mov dl,' '
int 21h
mov al,bh
loop aghab
jmp starts:

MOV AX, 4C00h ; exit to operating system.
INT 21h
START ENDP
CSEG ENDS
END START ; set entry point.

unknown.unforgiven
سه شنبه 17 خرداد 1390, 21:17 عصر
این برنامه چه جوری کار میکنه؟

یه رشته از کاربر میگیره، بعد شروع میکنه کاراکتر به کاراکتر اون رو رو خروجی چاپ میکنه، هر وقت به انتهای رشته رسید دوباره این کارا رو تکرار میکنه با این تفاوت که col رو یه واحد میبره راست. بعد از اینکه به آخر خط رسید همون کارا رو دوباره تکرار میکنه با این تفاوت که این سری col رو یه واحد میده چپ و ...