PDA

View Full Version : سوال: فوری : مشکل این کد نسبتا ساده چیه؟



IamOverlord
پنج شنبه 19 اسفند 1389, 17:38 عصر
سلام دوستان!
لطفا یکی مشکل این کد رو بگه، حتی اگه به نظرش درسته باز هم بگه.

.model small

.data

var_L dw 3
var_OrMn db 'Hello World!' , "$"

.code

main proc far

mov ax , @data
mov ds, ax

cmp val_L , 2
jne lblendif_ 5

mov ah, 2h
mov dh, 0
mov dl, 0
mov bh,0
int 10h

mov dx , offset var_OrMn
mov ah , 9h
int 21h

lblendif_5:

call proc_Ppji

mov ax , 4c00h
int 21h

main endp

proc_Ppji proc

push bp
mov bp,sp

lblname_Mmi:
jmp lblname_Mmi

pop bp
ret

proc_Ppji endp

end main

IamOverlord
پنج شنبه 19 اسفند 1389, 18:28 عصر
سلام دوستان!
مشکلم حل شد، به جای var_L نوشته بودم val_L !

IamOverlord
شنبه 21 اسفند 1389, 01:39 صبح
سلام دوستان!
در مورد این کدی که گذاشتم هر چی فکر کردم نفهمیدم مشکلش کجاست، لطفا یکی نظر بده:

.model small
.stack 64
.code
main proc far
mov ax , @data
mov ds, ax
push 23
call proc_Mmi
mov ax , 4c00h
int 21h
main endp
.data
var_L dw ?
.code
proc_Mmi proc
push bp
mov bp,sp
mov var_L , word ptr [bp+04]
pop bp
ret
proc_Mmi endp
end main

IamOverlord
شنبه 21 اسفند 1389, 02:53 صبح
سلام دوستان!
در مورد این کدی که گذاشتم هر چی فکر کردم نفهمیدم مشکلش کجاست، لطفا یکی نظر بده:

.model small
.stack 64
.code
main proc far
mov ax , @data
mov ds, ax
push 23
call proc_Mmi
mov ax , 4c00h
int 21h
main endp
.data
var_L dw ?
.code
proc_Mmi proc
push bp
mov bp,sp
mov var_L , word ptr [bp+04]
pop bp
ret
proc_Mmi endp
end main

چرا وقتی خط 18 حذف می شه مشکل حل می شه؟
باید چی کار کنیم که مشکل خط 18 برطرف شه؟
ضمنا با TASM و TLINK کار می کنم.

xman_1365_x
یک شنبه 22 اسفند 1389, 03:27 صبح
اولين مشكل دو بار تعريف .code
مشكل ديگه هم mov var_L , word ptr [bp+04]
كه شما نمي تونيد مستقيم با mov محتويات دو خانه از حافظه رم رو جابجا كنيد براي اينكار از يك ثبات كمكي استفاده ميكنيم.
ضمنا بهتره .data رو شروع برنامه داشته باشيد و متغير هايي كه نياز داريد همونجا تعريف كنيد تا خوانايي برنامه از دست نره.


.model small
.stack 64

.data
var_L dw ?

.code

main proc far
mov ax , @data
mov ds, ax
push 23
call proc_Mmi
mov ax , 4c00h
int 21h
main endp

proc_Mmi proc
push bp
mov bp,sp
mov ax,word ptr [bp+4]
mov var_L,ax
pop bp
ret
proc_Mmi endp

end main