ghasemloo
چهارشنبه 07 خرداد 1393, 17:59 عصر
سلام خسته نباشید من تایه جاهایی این کد رو می فهمم
; multi-segment executable file template.
data segment
; add your data here!
pkey db "press any key...$"
maxlen db 19
actlen db ?
numa db 19 dup(' ')
javab db 0dh,0ah,"javab=$"
numb db 2 dup(' '),0dh,0ah,"$"
ends
stack segment
dw 128 dup(0)
ends
code segment
start proc
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
; add your code here
lea dx,maxlen
mov ah,10
int 21h
mov cx,0
lea si,numa
l3: cmp [si],0dh
je l5
cmp [si],'z'
jg l7
cmp [si],'a'
jl l7
add cx,1
l7: add si,1
jmp l3
L5: mov ax,cx
lea si,numb
call bintoasc
mov ah,09h
lea dx,javab
int 21h
lea dx,numb
mov ah,09h
int 21h
lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx
; wait for any key....
mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
start endp
bintoasc proc
add si,1
mov bx,10
l0: mov dx,0
div bx
add dl,'0'
mov [si],dl
or ax,ax
jz l1
dec si
jmp l0
l1: ret
bintoasc endp
ends
end start ; set entry point and stop the assembler.
یکی از قسمتهایی که متوجه نمی شم cmp [si],0dh
اگه میشه خط به خط قسمت کد رو برام توضیح بدین
; multi-segment executable file template.
data segment
; add your data here!
pkey db "press any key...$"
maxlen db 19
actlen db ?
numa db 19 dup(' ')
javab db 0dh,0ah,"javab=$"
numb db 2 dup(' '),0dh,0ah,"$"
ends
stack segment
dw 128 dup(0)
ends
code segment
start proc
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
; add your code here
lea dx,maxlen
mov ah,10
int 21h
mov cx,0
lea si,numa
l3: cmp [si],0dh
je l5
cmp [si],'z'
jg l7
cmp [si],'a'
jl l7
add cx,1
l7: add si,1
jmp l3
L5: mov ax,cx
lea si,numb
call bintoasc
mov ah,09h
lea dx,javab
int 21h
lea dx,numb
mov ah,09h
int 21h
lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx
; wait for any key....
mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
start endp
bintoasc proc
add si,1
mov bx,10
l0: mov dx,0
div bx
add dl,'0'
mov [si],dl
or ax,ax
jz l1
dec si
jmp l0
l1: ret
bintoasc endp
ends
end start ; set entry point and stop the assembler.
یکی از قسمتهایی که متوجه نمی شم cmp [si],0dh
اگه میشه خط به خط قسمت کد رو برام توضیح بدین