PDA

View Full Version : چرا این کد درست اجرا نمی شود؟



second_boy
جمعه 03 آذر 1391, 16:52 عصر
سلام
من اولین بارمه که با اسمبلی برنامه می نویسم.و در بدو شروع هم به مشکل برخوردم.من می خواهم این برنامه دو عدد را با هم جمع کند. ابتدا یک عدد را در درون متغیر a ذخیره می کنم و بعد از آن در قسمت کد عدد 12 را در ثبات ax ذخیره می کنم و آن را با a جمع می کنم.
سوال من اینجاست که چرا هر متغیری را که تعریف می کنم در ثبات ax ذخیره می شود؟آیا کد زیر اشتباه است؟چرا عدد 14 که از مجموع 12 و 2 است در درون ثبات ax ذخیره نمی شود؟

data segment
a dw 2
data ends
code segment
assume cs:data
mov ax,12
add ax,a
code ends

Delphi Coder
سه شنبه 07 آذر 1391, 03:12 صبح
data segment
a dw 2
data ends

code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
mov ax,12
add ax,a
code ends
end start
خودتون عمل جمع رو تو ax انجام میدین میتونید به جاش از bx استفاده کنید یا اینکه مستقیم در آدرس خودش جمع کنید. بستگی به خودتون داره. cs کد سگمنت هست و ds هم سگمنت داده ها. اول برنامه باید آدرس سگمنت داده ها رو درست کنید. مثل کدی که براتون زدم.
کلا از فروم نباید انتظار داشت کار کتاب رو براتون انجام بده باید کتاب آموزشیتون رو با دقت مطالعه کنید.