نوشته شده توسط
Mehdi_mh
میتونی یه طوری کد رو بگذاری تا من ببینمش.
publicstring all, opcode, oprand1, oprand2,line;
publicint j = 0, ax, bx, cx, dx, op;
privatevoid Form2_Load(object sender, EventArgs e)
{
ax = int.Parse(label9.Text);
bx = int.Parse(label10.Text);
cx = int.Parse(label11.Text);
dx = int.Parse(label12.Text);
}
privatevoid button1_Click(object sender, EventArgs e)
{
line = "";
opcode = "";
oprand1 = "";
oprand2 = "";
all = richTextBox1.Text;
for (j = j; all[j] != '\n'; j++)
{
line = line + all[j].ToString();
}
for (int i = 0; i <= 2; i++)
opcode = opcode + line[i];
for (int z = 4; z <= 5; z++)
oprand1 = oprand1 + line[z];
for (int w = 7; w <= 8; w++)
oprand2 = oprand2 + line[w];
label5.Text = line;
label6.Text = opcode;
label7.Text = oprand1;
label8.Text = oprand2;
if (label6.Text == "add")
op = 0;
elseif (label6.Text == "sub")
op = 1;
elseif (label6.Text == "mul")
op = 2;
elseif (label6.Text == "div")
op = 3;
j++;
line = "";
opcode = "";
oprand1 = "";
if (j ==all.Length )
{
button1.Enabled = false;
MessageBox.Show("Please Close compiler , enter new command and run again");
}
ناقصه دیگه . ببین حالا می خوام چک کنم ببینم تو عملوندها(oprand)نام چه متغییر هایی هست بعد مقدار اونها رو به دست بیارم و با استفاده از متغییر op که مشخص می کنه دستور چیه چهار عمل رو انجام بدم . oprand اول هم مولفه ای است که تو عملیات دخیل هست و هم مقصد محاسبات . با ساختار کیس باید بعد از هر بار انجام هر عملی مقادیر به روز بشوند . نمی شه هر بار 200تا شرط چه کرد که بگی مثلا اگه AX بود و دومی هم BX بود فلان کارو بکنه که .
شما به من بگو با فرض اینکه تو oprand1 ما AX قرار داره من با چه کدی می تونم مقدار این AX که یه متغییر هست رو بخونم؟کدی که تو oprand نام هر متغییری بود مقدار اون متغییر ور برام به دست بیاره .گه AX =5هست اون به من 5 رو بده نه Ax رو.ممکنه که تو oprand {یزی به جز ax باشه . ;کد باید مقدار هر متغییر رو که تو Oprand ها هست بهم بیاره بیرون.
یا حق