📄 asm.cpp
字号:
while((dearp[0]!='\0')&&(dearp[0]!=']'))
{
if(!(dearp[0]==' '||(dearp[0]=='0')||(dearp[0]=='1')||(dearp[0]=='2')||(dearp[0]=='3')||(dearp[0]=='4')||(dearp[0]=='5')||(dearp[0]=='6')||(dearp[0]=='7')||(dearp[0]=='8')||(dearp[0]=='9')||(dearp[0]=='A')||(dearp[0]=='B')||(dearp[0]=='C')||(dearp[0]=='D')||(dearp[0]=='E')||(dearp[0]=='F')))
errorsign=0;
dearp++;
}
if(dearp[0]=='\0')errorsign=0;
dearp++;
while(dearp[0]!=','&&dearp[0]!='\0')
{
if(dearp[0]!=' ')
errorsign=0;
dearp++;
}
if(dearp[0]=='\0')errorsign=0;
dearp++;
while(dearp[0]!='R'&&dearp[0]!='r'&&dearp[0]!='\0')
{
if(dearp[0]!=' ')
errorsign=0;
dearp++;
}
if(dearp[0]=='\0')errorsign=0;
dearp++;
while((dearp[0]!='\0')&&(dearp[0]!=' '))
{
if(!((dearp[0]=='0')||(dearp[0]=='1')||(dearp[0]=='2')||(dearp[0]=='3')||(dearp[0]=='4')||(dearp[0]=='5')||(dearp[0]=='6')||(dearp[0]=='7')||(dearp[0]=='8')||(dearp[0]=='9')||(dearp[0]=='A')||(dearp[0]=='B')||(dearp[0]=='C')||(dearp[0]=='D')||(dearp[0]=='E')||(dearp[0]=='F')))
errorsign=0;
dearp++;
}
}
if(errorsign==1)
{
p++;
TEMP1=getdata(p);
while(p[0]!='r'&&p[0]!='R')p++;
p++;
TEMP2=trahexdec(getdata(p));
memory[temp]=id+TEMP2;
temp++;
memory[temp]=TEMP1;
temp++;
}
else
{
CString AResult,tempstr;
AResult=" ^ Error!";
AResult+="\r\n";
int CurrentlengthAll;
CurrentlengthAll=pEdit->GetWindowTextLength();
pEdit->SetSel(CurrentlengthAll,CurrentlengthAll);
pEdit->ReplaceSel(AResult);
}
}
}
void Casm::asm42(WORD &temp,char *p,WORD id)
{
int errorsign=1;char * dearp=p;
while(dearp[0]==' ')dearp++;
if(dearp[0]!='R')errorsign=0;
else
{
dearp++;
if(trahexdec(getdata(dearp))>15||trahexdec(getdata(dearp))<0)errorsign=0;
while(dearp[0]!=','&&dearp[0]!='\0')
{
if(!((dearp[0]==' ')||(dearp[0]=='0')||(dearp[0]=='1')||(dearp[0]=='2')||(dearp[0]=='3')||(dearp[0]=='4')||(dearp[0]=='5')||(dearp[0]=='6')||(dearp[0]=='7')||(dearp[0]=='8')||(dearp[0]=='9')))
errorsign=0;
dearp++;
}
if(dearp[0]=='\0')errorsign=0;
dearp++;
while(dearp[0]==' ')dearp++;
while((dearp[0]!='\0')&&(dearp[0]!='['))
{
if(!((dearp[0]==' ')||(dearp[0]=='0')||(dearp[0]=='1')||(dearp[0]=='2')||(dearp[0]=='3')||(dearp[0]=='4')||(dearp[0]=='5')||(dearp[0]=='6')||(dearp[0]=='7')||(dearp[0]=='8')||(dearp[0]=='9')||(dearp[0]=='A')||(dearp[0]=='B')||(dearp[0]=='C')||(dearp[0]=='D')||(dearp[0]=='E')||(dearp[0]=='F')))
errorsign=0;
dearp++;
}
if(dearp[0]=='\0')errorsign=0;
dearp++;
while(dearp[0]==' ')dearp++;
if(dearp[0]!='R')errorsign=0;
dearp++;
if(trahexdec(getdata(dearp))>15||trahexdec(getdata(dearp))<0)errorsign=0;
while(dearp[0]!=']'&&dearp[0]!='\0')
{
if(!((dearp[0]==' ')||(dearp[0]=='0')||(dearp[0]=='1')||(dearp[0]=='2')||(dearp[0]=='3')||(dearp[0]=='4')||(dearp[0]=='5')||(dearp[0]=='6')||(dearp[0]=='7')||(dearp[0]=='8')||(dearp[0]=='9')))
errorsign=0;
dearp++;
}
if(dearp[0]=='\0')errorsign=0;
dearp++;
while((dearp[0]!='\0')&&(dearp[0]!=' '))
{
if(!((dearp[0]=='0')||(dearp[0]=='1')||(dearp[0]=='2')||(dearp[0]=='3')||(dearp[0]=='4')||(dearp[0]=='5')||(dearp[0]=='6')||(dearp[0]=='7')||(dearp[0]=='8')||(dearp[0]=='9')||(dearp[0]=='A')||(dearp[0]=='B')||(dearp[0]=='C')||(dearp[0]=='D')||(dearp[0]=='E')||(dearp[0]=='F')))
errorsign=0;
dearp++;
}
}
if(errorsign==1)
{
WORD TEMP1,TEMP2,TEMP3;
while(p[0]==' ')p++;
if(p[0]!='r'&&p[0]!='R');//cout<<" ^error"<<endl;
else
{
p++;
TEMP1=trahexdec(getdata(p));
while(p[0]!=',')p++;
p++;
TEMP2=getdata(p);
p++;
while(p[0]!='r'&&p[0]!='R')p++;
p++;
TEMP3=trahexdec(getdata(p));
memory[temp]=id+TEMP1*16+TEMP3;
temp++;
memory[temp]=TEMP2;
temp++;
}
}
else
{
CString AResult,tempstr;
AResult=" ^ Error!";
AResult+="\r\n";
int CurrentlengthAll;
CurrentlengthAll=pEdit->GetWindowTextLength();
pEdit->SetSel(CurrentlengthAll,CurrentlengthAll);
pEdit->ReplaceSel(AResult);
}
}
void Casm::asm5(WORD &temp,char *p,WORD id)
{
int errorsign=1;char * dearp=p;
while(dearp[0]==' ')dearp++;
WORD cs=getdata(p);
if(cs>=temp+1)
cs=cs-temp-1;
else
cs=temp+1-cs;
if(cs>=0x80)errorsign=0;
while((dearp[0]!='\0')&&(dearp[0]!=' '))
{
if(!((dearp[0]=='0')||(dearp[0]=='1')||(dearp[0]=='2')||(dearp[0]=='3')||(dearp[0]=='4')||(dearp[0]=='5')||(dearp[0]=='6')||(dearp[0]=='7')||(dearp[0]=='8')||(dearp[0]=='9')||(dearp[0]=='A')||(dearp[0]=='B')||(dearp[0]=='C')||(dearp[0]=='D')||(dearp[0]=='E')||(dearp[0]=='F')))
errorsign=0;
dearp++;
}
while(dearp[0]!='\0')
{
if(dearp[0]!=' ')
{errorsign=0;}
dearp++;
}
if(errorsign==1)
{
WORD TEMP1,TEMP2;
while(p[0]==' ')p++;
TEMP1=getdata(p);
TEMP2=0x10000+TEMP1-temp-1;
TEMP2=0x00ff&TEMP2;
memory[temp]=id+TEMP2;
temp++;
}
else
{
CString AResult,tempstr;
AResult=" ^ Error!";
AResult+="\r\n";
int CurrentlengthAll;
CurrentlengthAll=pEdit->GetWindowTextLength();
pEdit->SetSel(CurrentlengthAll,CurrentlengthAll);
pEdit->ReplaceSel(AResult);
}
}
void Casm::asm6(WORD &temp,char *p,WORD id)
{
int errorsign=1;char * dearp=p;
while(dearp[0]==' ')dearp++;
while((dearp[0]!='\0')&&(dearp[0]!=' '))
{
if(!((dearp[0]=='0')||(dearp[0]=='1')||(dearp[0]=='2')||(dearp[0]=='3')||(dearp[0]=='4')||(dearp[0]=='5')||(dearp[0]=='6')||(dearp[0]=='7')||(dearp[0]=='8')||(dearp[0]=='9')||(dearp[0]=='A')||(dearp[0]=='B')||(dearp[0]=='C')||(dearp[0]=='D')||(dearp[0]=='E')||(dearp[0]=='F')))
errorsign=0;
dearp++;
}
while(dearp[0]!='\0')
{
if(dearp[0]!=' ')
{errorsign=0;}
dearp++;
}
if(errorsign==1)
{
WORD TEMP1;
while(p[0]==' ')p++;
TEMP1=getdata(p);
memory[temp]=id;
temp++;
memory[temp]=TEMP1;
temp++;
}
else
{
CString AResult,tempstr;
AResult=" ^ Error!";
AResult+="\r\n";
int CurrentlengthAll;
CurrentlengthAll=pEdit->GetWindowTextLength();
pEdit->SetSel(CurrentlengthAll,CurrentlengthAll);
pEdit->ReplaceSel(AResult);
}
}
void Casm::controlU()
{
char *CS=now;
int errorsign=1;
while(CS[0]==' ')CS++;
while((CS[0]!='\0')&&(CS[0]!=' '))
{
if(!((CS[0]==' ')||(CS[0]=='0')||(CS[0]=='1')||(CS[0]=='2')||(CS[0]=='3')||(CS[0]=='4')||(CS[0]=='5')||(CS[0]=='6')||(CS[0]=='7')||(CS[0]=='8')||(CS[0]=='9')||(CS[0]=='A')||(CS[0]=='B')||(CS[0]=='C')||(CS[0]=='D')||(CS[0]=='E')||(CS[0]=='F')))
errorsign=0;
CS++;
}
while(CS[0]!='\0')
{
if(CS[0]!=' ')
{errorsign=0;}
CS++;
}
if(errorsign==1)
{
addressD=0x2000;addressT=0x2000;addressP=0x2000;
WORD TEMPADR=getdata(now);
WORD TEMP;
if(now[0]=='\0'&&addressU!=0x2000){TEMP=addressU;}
else if(now[0]=='\0'&&addressU==0x2000){TEMP=addressU;}
else{TEMP=TEMPADR;}
pc=TEMP;
int CurrentlengthAll;
CString UResult,temp;
UResult="\r\n";
CurrentlengthAll=pEdit->GetWindowTextLength();
pEdit->SetSel(CurrentlengthAll,CurrentlengthAll);
pEdit->ReplaceSel(UResult);
for(int i=0;i<16;i++)
{
UResult.Empty();
savepcsp();
ID=getinsID();
switch(ID)
{
case 0x0000:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="ADD R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x0100:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="SUB R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x0200:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="AND R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x0300:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="CMP R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x0400:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="XOR R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x0500:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="TEST R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x0600:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="OR R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x0700:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="MVRR R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x0800:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+="DEC R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x0900:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+="INC R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x0a00:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+="SHL R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x0b00:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+="SHR R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x4100:OFFSET=getoffset();ADR=pc+OFFSET+1;temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="JR ";temp.Format("%04x",ADR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x4400:OFFSET=getoffset();ADR=pc+OFFSET+1;temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="JRC ";temp.Format("%04x",ADR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x4500:OFFSET=getoffset();ADR=pc+OFFSET+1;temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="JRNC ";temp.Format("%04x",ADR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x4600:OFFSET=getoffset();ADR=pc+OFFSET+1;temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="JRZ ";temp.Format("%04x",ADR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x4700:OFFSET=getoffset();ADR=pc+OFFSET+1;temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+="JRNZ ";temp.Format("%04x",ADR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x8000:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";temp.Format("%04x",memory[pc+1]);UResult+=temp;UResult+=" ";
pc++;ADR=getadr();UResult+="JMPA ";temp.Format("%04x",ADR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x8100:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+="LDRR R";temp.Format("%d",DR);UResult+=temp;
UResult+=", [R";temp.Format("%d",SR);UResult+=temp;UResult+="]\r\n";pc++;break;
case 0x8200:IOPORT=getioport();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" IN ";temp.Format("%x",IOPORT);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x8300:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult+=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+="STRR [R";temp.Format("%d",DR);UResult+=temp;
UResult+="], R";temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x8400:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" PSHF\r\n";pc++;break;
case 0x8500:SR=getsr();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" PUSH R";temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x8600:IOPORT=getioport();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" OUT ";temp.Format("%x",IOPORT);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x8700:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+="POP R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x8800:DR=getdr();temp.Format("%04x",pc);UResult+=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";temp.Format("%04x",memory[pc+1]);UResult+=temp;UResult+=" ";
pc++;UResult+="MVRD R";temp.Format("%d",DR);UResult+=temp;UResult+=", ";
temp.Format("%04x",memory[pc]);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x8c00:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" POPF\r\n";pc++;break;
case 0x8f00:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" RET\r\n";pc++;break;
case 0xce00:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";temp.Format("%04x",memory[pc+1]);UResult+=temp;UResult+=" ";
pc++;ADR=getadr();UResult+="CALA ";temp.Format("%04x",ADR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x2000:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+=" ADC R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x2100:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+=" SBB R";temp.Format("%d",DR);UResult+=temp;UResult+=", R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x2a00:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+=" RCL R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x2b00:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+=" RCR R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x2c00:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+=" ASR R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x2d00:DR=getdr();temp.Format("%04x",pc);UResult=temp; UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+=" NOT R";temp.Format("%d",DR);UResult+=temp;
UResult+="\r\n";pc++;break;
case 0x6000:SR=getsr();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+=" JMPR R";temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";
pc++;break;
case 0x6400:OFFSET=getoffset();ADR=pc+OFFSET+1;temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+=" JRS ";temp.Format("%04x",ADR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x6500:OFFSET=getoffset();ADR=pc+OFFSET+1;temp.Format("%04x",pc);UResult=temp;
UResult+=":";temp.Format("%04x",memory[pc]);UResult+=temp;UResult+=" ";
UResult+=" JRNS ";temp.Format("%04x",ADR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0x6c00:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" CLC\r\n";pc++;break;
case 0x6d00:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" STC\r\n";pc++;break;
case 0x6e00:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" EI\r\n";pc++;break;
case 0x6f00:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" DI\r\n";pc++;break;
case 0xe000:SR=getsr();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";UResult+=" CALR R";temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";
pc++;break;
case 0xe400:DR=getdr();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";temp.Format("%04x",memory[pc+1]);UResult+=temp;UResult+=" ";
pc++;ADR=getadr();UResult+="LDRR R";temp.Format("%d",DR);UResult+=temp;UResult+=", [";
temp.Format("%04x",ADR);UResult+=temp;UResult+="]\r\n";pc++;break;
case 0xe500:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";temp.Format("%04x",memory[pc+1]);UResult+=temp;UResult+=" ";
pc++;ADR=getadr();UResult+="LDRX R";temp.Format("%d",DR);UResult+=temp;UResult+=", ";
temp.Format("%04x",ADR);UResult+=temp;UResult+="[R";temp.Format("%d",SR);UResult+=temp;UResult+="]\r\n";
pc++;break;
case 0xe600:DR=getdr();SR=getsr();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";temp.Format("%04x",memory[pc+1]);UResult+=temp;UResult+=" ";
pc++;ADR=getadr();UResult+="STRX R";temp.Format("%d",DR);UResult+=temp;UResult+=", ";
temp.Format("%04x",ADR);UResult+=temp;UResult+="[R";temp.Format("%d",SR);UResult+=temp;UResult+="]\r\n";
pc++;break;
case 0xe700:SR=getsr();temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" ";temp.Format("%04x",memory[pc+1]);UResult+=temp;UResult+=" ";
pc++;ADR=getadr();
UResult+="STRA [";temp.Format("%04x",ADR);UResult+=temp;UResult+="], R";
temp.Format("%d",SR);UResult+=temp;UResult+="\r\n";pc++;break;
case 0xef00:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" IRET\r\n";pc++;break;
default:temp.Format("%04x",pc);UResult=temp;UResult+=":";temp.Format("%04x",memory[pc]);
UResult+=temp;UResult+=" DW ";UResult+=temp;UResult+="\r\n";pc++;break;
}
CurrentlengthAll=pEdit->GetWindowTextLength();
pEdit->SetSel(CurrentlengthAll,CurrentlengthAll);
pEdit->ReplaceSel(UResult);
}
UResult="\r\n>";
CurrentlengthAll=pEdit->GetWindowTextLength();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -