📄 instruction_define.cpp
字号:
getfirst32address();
sendto2();
for(i=0;i<32;i++)
*(firstaddress+i)=a[i];
}
}
void instruction70()
{
if(objectregister[objectsign])
{
getfirst16address();
bool a;
a=*firstaddress;
*firstaddress=*(firstaddress+15);
*(firstaddress+15)=a;
}
}
void instruction71()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst16address();
getaim16address1();
sum1=tran16arraytoconst(firstaddress);
sum2=tran16arraytoconst(aimaddress);
sum1=sum1+sum2;
firstaddress=aimaddress;
tranconstto16array(sum1);
}
}
void instruction72()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst32address();
getaim32address1();
sum1=tran32arraytoconst(firstaddress);
sum2=tran32arraytoconst(aimaddress);
sum1=sum1+sum2;
firstaddress=aimaddress;
tranconstto32array(sum1);
}
}
void instruction73()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst16address();
getaim16address1();
sum1=tran16arraytoconst(firstaddress);
sum2=tran16arraytoconst(aimaddress);
sum1=sum1+sum2;
getaim16address2();
firstaddress=aimaddress;
tranconstto16array(sum1);
}
}
void instruction74()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst32address();
getaim32address1();
sum1=tran32arraytoconst(firstaddress);
sum2=tran32arraytoconst(aimaddress);
sum1=sum1+sum2;
getaim32address2();
firstaddress=aimaddress;
tranconstto32array(sum1);
}
}
void instruction75()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst16address();
getaim16address1();
sum1=tran16arraytoconst(firstaddress);
sum2=tran16arraytoconst(aimaddress);
sum1=sum1-sum2;
firstaddress=aimaddress;
tranconstto16array(sum1);
}
}
void instruction76()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst32address();
getaim32address1();
sum1=tran32arraytoconst(firstaddress);
sum2=tran32arraytoconst(aimaddress);
sum1=sum1-sum2;
firstaddress=aimaddress;
tranconstto32array(sum1);
}
}
void instruction77()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst16address();
getaim16address1();
sum1=tran16arraytoconst(firstaddress);
sum2=tran16arraytoconst(aimaddress);
sum1=sum1-sum2;
getaim16address2();
firstaddress=aimaddress;
tranconstto16array(sum1);
}
}
void instruction78()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst32address();
getaim32address1();
sum1=tran32arraytoconst(firstaddress);
sum2=tran32arraytoconst(aimaddress);
sum1=sum1-sum2;
getaim32address2();
firstaddress=aimaddress;
tranconstto32array(sum1);
}
}
void instruction79()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst16address();
getaim16address1();
sum1=tran16arraytoconst(firstaddress);
sum2=tran16arraytoconst(aimaddress);
sum1=sum1*sum2;
getaim16address2();
firstaddress=aimaddress;
tranconstto32array(sum1);
}
}
void tranconstto64array(int k)
{
if(objectregister[objectsign])
{
for(int i=0;i<64;i++)
{
*(firstaddress+i)=false;
}
for(i=1;i<=k;i++)
{
int m=0;
while((*(firstaddress+m)!=false)&&(m<64))
m++;
*(firstaddress+m)=true;
for(int n=m;n>=0;n--)
*(firstaddress+n-1)=false;
}
}
}
void instruction80()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst32address();
getaim32address1();
sum1=tran32arraytoconst(firstaddress);
sum2=tran32arraytoconst(aimaddress);
sum1=sum1*sum2;
getaim32address2();
firstaddress=aimaddress;
tranconstto64array(sum1);
}
}
void instruction81()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst16address();
getaim16address1();
sum1=tran16arraytoconst(firstaddress);
sum2=tran16arraytoconst(aimaddress);
sum1=sum1%sum2;
getaim16address2();
firstaddress=aimaddress;
tranconstto32array(sum1);
}
}
void instruction82()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst32address();
getaim32address1();
sum1=tran32arraytoconst(firstaddress);
sum2=tran32arraytoconst(aimaddress);
sum1=sum1*sum2;
getaim32address2();
firstaddress=aimaddress;
tranconstto32array(sum1);
}
}
void instruction83()
{
if(objectregister[objectsign])
{
int sum;
getfirst16address();
sum=tran16arraytoconst(firstaddress);
sum+=1;
tranconstto16array(sum);
}
}
void instruction84()
{
if(objectregister[objectsign])
{
int sum;
getfirst32address();
sum=tran32arraytoconst(firstaddress);
sum+=1;
tranconstto32array(sum);
}
}
void instruction85()
{
if(objectregister[objectsign])
{
int sum;
getfirst16address();
sum=tran16arraytoconst(firstaddress);
sum-=1;
tranconstto16array(sum);
}
}
void instruction86()
{
if(objectregister[objectsign])
{
int sum;
getfirst32address();
sum=tran32arraytoconst(firstaddress);
sum-=1;
tranconstto32array(sum);
}
}
void instruction87()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst16address();
getaim16address1();
sum1=tran16arraytoconst(firstaddress);
sum2=tran16arraytoconst(aimaddress);
if(sum1==sum2)
{
WR[899]=false;
WR[900]=true;
WR[901]=false;
}
else if(sum1<sum2)
{
WR[899]=true;
WR[900]=false;
WR[901]=false;
}
else
{
WR[899]=false;
WR[900]=false;
WR[901]=true;
}
}
}
void instruction88()
{
if(objectregister[objectsign])
{
int sum1,sum2;
getfirst32address();
getaim32address1();
sum1=tran32arraytoconst(firstaddress);
sum2=tran32arraytoconst(aimaddress);
if(sum1==sum2)
{
WR[899]=false;
WR[900]=true;
WR[901]=false;
}
else if(sum1<sum2)
{
WR[899]=true;
WR[900]=false;
WR[901]=false;
}
else
{
WR[899]=false;
WR[900]=false;
WR[901]=true;
}
}
}
void instruction89()
{
if(objectregister[objectsign])
{
bool a[16];
getfirst16address();
getaim16address1();
for(int i=0;i<16;i++)
a[i]=(*(firstaddress+i))&&(*(aimaddress+i));
getaim16address2();
firstaddress=aimaddress;
for(i=0;i<16;i++)
*(firstaddress+i)=a[i];
}
}
void instruction90()
{
if(objectregister[objectsign])
{
bool a[16];
getfirst16address();
getaim16address1();
for(int i=0;i<16;i++)
a[i]=(*(firstaddress+i))||(*(aimaddress+i));
getaim16address2();
firstaddress=aimaddress;
for(i=0;i<16;i++)
*(firstaddress+i)=a[i];
}
}
void instruction91()
{
if(objectregister[objectsign])
{
bool a[16];
getfirst16address();
getaim16address1();
for(int i=0;i<16;i++)
a[i]=((*(firstaddress+i))
&&(!(*(aimaddress+i))))||(!((*(firstaddress+i)))
&&(*(aimaddress+i)));
getaim16address2();
firstaddress=aimaddress;
for(i=0;i<16;i++)
*(firstaddress+i)=a[i];
}
}
void instruction92()
{
if(objectregister[objectsign])
{
bool a[16];
getfirst16address();
getaim16address1();
for(int i=0;i<16;i++)
a[i]=!(((*(firstaddress+i))&&(!(*(aimaddress+i))))||
(!((*(firstaddress+i)))&&(*(aimaddress+i))));
getaim16address2();
firstaddress=aimaddress;
for(i=0;i<16;i++)
*(firstaddress+i)=a[i];
}
}
void instruction94()
{
if(objectregister[objectsign])
{
getfirst16address();
for(int i=1;i<=instructionstore[isrunsign].register2number;i++)
{
for(int j=0;j<15;j++)
*(firstaddress+j)=*(firstaddress+j+1);
*(firstaddress+16-i)=false;
}
}
}
void instruction95()
{
if(objectregister[objectsign])
{
getfirst16address();
for(int i=1;i<=instructionstore[isrunsign].register2number;i++)
{
for(int j=15;j>0;j--)
*(firstaddress+j)=*(firstaddress+j-1);
*(firstaddress+i-1)=false;
}
}
}
void instruction96()
{
if(objectregister[objectsign])
{
getfirst16address();
for(int i=1;i<=4;i++)
{
for(int j=15;j>0;j--)
*(firstaddress+j)=*(firstaddress+j-1);
*(firstaddress+i-1)=false;
}
}
}
void instruction97()
{
if(objectregister[objectsign])
{
getfirst16address();
for(int i=1;i<=4;i++)
{
for(int j=15;j>0;j--)
*(firstaddress+j)=*(firstaddress+j-1);
*(firstaddress+i-1)=false;
}
}
}
void instruction98()
{
if(objectregister[objectsign])
{
getfirst16address();
for(int i=0;i<instructionstore[isrunsign].register2number
-instructionstore[isrunsign].register1number;i++)
{
firstaddress=firstaddress+i*16;
for(int j=0;j<16;j++)
*(firstaddress+j)=*(firstaddress+16);
}
for(i=0;i<16;i++)
*(firstaddress+i)=*(firstaddress+i+16);
}
}
void instruction99()
{
if(objectregister[objectsign])
{
getaim16address1();
for(int i=0;i<instructionstore[isrunsign].register2number
-instructionstore[isrunsign].register1number;i++)
{
aimaddress=aimaddress-i*16;
for(int j=0;j<16;j++)
*(aimaddress+j)=*(aimaddress-16);
}
for(i=0;i<16;i++)
*(aimaddress+i)=*(aimaddress+i-16);
}
}
void instruction100()
{
if(objectregister[objectsign])
{
getfirst16address();
for(int i=0;i<4;i++)
{
for(int j=0;j<(instructionstore[isrunsign].register2number
-instructionstore[isrunsign].register1number)*16;j++)
*(firstaddress+j)=*(firstaddress+j+1);
*(firstaddress+j-i)=false;
}
}
}
void instruction101()
{
if(objectregister[objectsign])
{
getfirst16address();
for(int i=0;i<4;i++)
{
for(int j=(instructionstore[isrunsign].register2number
-instructionstore[isrunsign].register1number)*16;j>0;j--)
*(firstaddress+j)=*(firstaddress+j-1);
*(firstaddress+i)=false;
}
}
}
void instruction102()
{
if(objectregister[objectsign])
{
getfirst16address();
bool a;
for(int i=1;i<=instructionstore[isrunsign].register2number;i++)
{
a=*firstaddress;
for(int j=0;j<15;j++)
*(firstaddress+j)=*(firstaddress+j+1);
*(firstaddress+15)=a;
}
}
}
void instruction103()
{
if(objectregister[objectsign])
{
getfirst16address();
bool a;
for(int i=1;i<=instructionstore[isrunsign].register2number;i++)
{
a=*(firstaddress+15);
for(int j=15;j>0;j--)
*(firstaddress+j)=*(firstaddress+j-1);
*firstaddress=a;
}
}
}
void instruction106()
{
if(objectregister[objectsign])
{
getfirst16address();
*(firstaddress+instructionstore[isrunsign].register2number)=true;
}
}
void instruction107()
{
if(objectregister[objectsign])
{
getfirst16address();
*(firstaddress+instructionstore[isrunsign].register2number)=false;
}
}
void instruction108()
{
if(objectregister[objectsign])
{
getfirst16address();
*(firstaddress+instructionstore[isrunsign].register2number)
=!(*(firstaddress+instructionstore[isrunsign].register2number));
}
}
void instruction109()
{
if(objectregister[objectsign])
{
getfirst16address();
WR[905]=*(firstaddress+instructionstore[isrunsign].register2number);
}
}
void instruction110()
{
if(objectregister[objectsign])
{
getfirst16address();
int a;
for(int i=0;i<16;i++)
{
if(*(firstaddress+i)=true)
a++;
}
getaim16address1();
firstaddress=aimaddress;
tranconstto16array(a);
}
}
void instruction111()
{
if(objectregister[objectsign])
{
getfirst16address();
int a;
for(int i=0;i<16;i++)
{
if(*(firstaddress+i)=false)
a++;
}
getaim16address1();
firstaddress=aimaddress;
tranconstto16array(a);
}
}
void instruction112() //SR指令
{
getfirst16address();
if(objectregister[objectsign])
{
for(int i=0;i<16;i++)
*(firstaddress+i)=false;
}
else if(objectregister[objectsign==0?2:objectsign-1])
{
for(int i=15;i>=1;i--)
*(firstaddress+i)=*(firstaddress+i-1);
int os;
if(objectsign==0)
os=1;
else if(objectsign==1)
os=2;
else os=0;
if(objectregister[os])
*(firstaddress+0)=1;
else
*(firstaddress+0)=0;
}
}
void instruction113() //LOOP指令
{
if(objectregister[objectsign])
{
getfirst16address();
int sum=tran16arraytoconst(firstaddress);
if (sum!=0)
sum-=1;
tranconstto16array(sum);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -