Posted: Sun Jul 16, 2006 6:18 pm Post subject: برنامه تشخيص ارقام مضرب 3
سلام.من يك برنامه به زبان اسمبلي كه برنامه گرفتن 15 عدد و نمايش مضارب 3 هست رو نوشتم حالا ميخوام يكي اشكالاشو بگيره. لطفا سريعتر. ممنون.somayehxxl63@yahoo.com
stack segment
dw 60 dup(?)
stack ends
data segment
msg1 db " please first enter number : ",$,13,10
msg2 db " mazareb 3 : ",$,13,10
strlist label byte
max db 2
len db ?
buffer db ?,?
tab1 db 10,12,13,14,15,16,17,18,19,20,21,22,23,25,95
data ends
code segment
assume cs:code,ds:data,ss:stack,es:data
push ds
push 0
mov ax,data
mov ds,ax
mov dx,offset msg1
mov ah,09h
int 21h
mov cx,0
while : cmp cx,15
jnl end_while
mov ah,0ah
lea dx,strlist
int 21h
mov ah,09h
lea dx,msg2
int 21h
lea dx,buffer
inc bx
mov al,buffer
sub al,30h
lea si,tab1
mov dl,00
l2: mov al,[si]
mov ah,00
mov bl,03
div bl
test ah,ah
jnz , l1
inc dl
mov ah,09h
int 21h
l1: inc si
jmp while
end_while :
add dl,30h
mov ah,09h
int 21h
mov ah,4ch
int 21h
code ends
end:
سلام من ديروز نبودم . سعي مي كنم تا امشب جواب بدم .
در مورد نحوه نمايش كدها هم بعد از اينكه نوشتي شون انتخابشون كن و دكمه code رو توي اديتور سايت بزن . تا سمت چپ نمايش داده بشن .
در ضمن سوالت رو فقط يه جا بپرس . در صورتيكه عناوين رو توي سايت پيدا نكردي تو بخش راهنمايي در پروژه بپرس . تشكر ...
Last edited by vahid on Tue Jul 18, 2006 4:06 pm; edited 2 times in total
اون قسمتي كه رشته رو تعريف كردين تا اونجايي كه يادم هست وقتي به $ اونم وقتي توي تك كوتيشن باشه قابل قبول هست و اينكه 13 و 10 احتمالا نبايد قبل از $ باشن ؟
يا مثلا تو كد سگمنت براي چي ds رو پوش كردين .
اين 15 عدد رو از كاربر مي گيرين يا همين هايي كه توي ديتاسگمنت تعريف كردين كافي هستند ؟
stacksg segment stack 'stack'
dw 32 dup(0)
stacksg ends
datasg segment 'data'
msg1 db 13,10,'enter number:','$'
msg2 db 13,10,'mazrab 3 $'
msgH db 'Hast.',13,10,'$'
msgN db 'Nist.',13,10,'$'
strlst label byte
max db 3
len db ?
buffer db 0,0
;parsx.com
datasg ends
codesg segment 'code'
assume cs:codesg,ds:datasg,ss:stacksg
main proc far
mov ax,datasg
mov ds,ax
mov cx,0
mov cx,16
while1:
dec cx
cmp cx,0
je end_while
mov dx,offset msg1
mov ah,09h
int 21h
mov ah,0AH
lea dx,strlst
int 21h
mov ah,09H
lea dx,msg2
int 21h
mov bh,buffer
mov bl,buffer+1
sub bh,30H
sub bl,30H
mov al,10
mul bh
add al,bl
mov bl,3
div bl
cmp ah,0
jnz NZero
lea dx,msgH
mov ah,09H
int 21h
jmp while1
NZero:
lea dx,msgN
mov ah,09H
int 21h
jmp while1
end_while:
;parsx.com
mov ax,4c00h
int 21h
main endp
codesg ends
end main
Posted: Wed Jul 19, 2006 6:15 am Post subject: اجراي پروژه
سلام. ببخشيد آقا برنامهاي كه نوشتيد درست اجرا نمي شه . آخه وقتي عدد وارد مي كني اين جوري عمل مي كنه كه براي اعداد از 10تا20 همرو مي نويسه hast واز 20تا40 nist واز 40تا50 hast,از 50تا70 nist , از 70تا 80 hast و از 80تا99 nist .حالا لطف كنيد بگين مشكلش كجاست.ممنون.در ضمن من برنامه رو با emulator بازم ممنون از لطفتون.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum