JavaScript实现MIPS乘法模拟的方法
本文实例讲述了JavaScript实现MIPS乘法模拟的方法。分享给大家供大家参考。具体如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>MIPSMULTIPLICATIONSIMULATOR</title>
<scripttype="text/javascript">
/*CREATEDBYSERKANSENDUR*/
functionStringToNumberArray(Bin){
varnumberArray=[];
for(vari=0;i<Bin.length;i++){
numberArray.push(Bin.substring(i,i+1));
}
returnnumberArray;
}
functionConvertToDecimal(Bin){
vardecimalNumber=0;
varnumberArray=StringToNumberArray(Bin);
numberArray.reverse();
for(vari=0;i<numberArray.length;i++){
decimalNumber+=numberArray[i]*Math.pow(2,i);
}
returndecimalNumber;
}
functionConvertToBinary(dec){
varbits=[];
vardividend=dec;
varremainder=0;
while(dividend>=2){
remainder=dividend%2;
bits.push(remainder);
dividend=(dividend-remainder)/2;
}
bits.push(dividend);
bits.reverse();
returnbits.join("");
}
functionMultiply(){
varfirstNumber=document.getElementById("txtFirst").value;
varsecondNumber=document.getElementById("txtSecond").value;
varmultiplier=ConvertToBinary(firstNumber);
varmultiplicant=ConvertToBinary(secondNumber);
varproduct=0;
varstep="Initialvalues";
variteration=0;
AppendToTable(iteration,step,multiplier,multiplicant,product);
multiplicationAlgoritm(multiplier,multiplicant,product,4);
}
functionmultiplicationAlgoritm(multiplier,multiplicant,product,counter){
if(counter>0){
variteration=5-counter;
vardecProduct=ConvertToDecimal(product);
vardecMultiplier=ConvertToDecimal(multiplier);
vardecMultiplicant=ConvertToDecimal(multiplicant);
if(Right(multiplier,1)=="1"){
decProduct=decProduct+decMultiplicant;
product=ConvertToBinary(decProduct);
AppendToTable(iteration,"1a",multiplier,multiplicant,product);
}
else{
AppendToTable(iteration,1,multiplier,multiplicant,product);
}
decMultiplicant=ConvertToDecimal(multiplicant);
decMultiplicant=decMultiplicant<<1;
multiplicant=ConvertToBinary(decMultiplicant);
AppendToTable(iteration,2,multiplier,multiplicant,product);
decMultiplier=ConvertToDecimal(multiplier);
decMultiplier=decMultiplier>>1;
multiplier=ConvertToBinary(decMultiplier);
AppendToTable(iteration,3,multiplier,multiplicant,product);
counter--;
multiplicationAlgoritm(multiplier,multiplicant,product,counter);
}
}
functionAppendToTable(iteration,step,multiplier,multiplicant,product){
varrow=document.getElementById("tblResults").insertRow();
varcell=row.insertCell();
cell.innerText=iteration;
varcell=row.insertCell();
cell.innerText=step;
varcell=row.insertCell();
cell.innerText=multiplier;
varcell=row.insertCell();
cell.innerText=multiplicant;
varcell=row.insertCell();
cell.innerText=product;
}
functionResetTable(){
for(vari=document.getElementById("tblResults").rows.length;i>1;i--){
document.getElementById("tblResults").deleteRow(i-1);
}
}
functionRight(str,n){
if(n<=0)
return"";
elseif(n>String(str).length)
returnstr;
else{
variLen=String(str).length;
returnString(str).substring(iLen,iLen-n);
}
}
</script>
<styletype="text/css">
.style1
{
border-collapse:collapse;
border-style:solid;
border-width:1px;
}
.style2
{
width:6px;
}
.style4
{
color:#3366FF;
}
.style5
{
color:#0066FF;
}
</style>
</head>
<body>
<br/>
<h3class="style4">
WELCOMETOMIPSMULTIPLICATIONSIMULATOR</h3>
<hrstyle="color:#0033CC"/>
<table>
<tr>
<tdclass="style5">
Multiplier:
</td>
<td>
<inputid="txtFirst"type="text"/>
</td>
</tr>
<tr>
<tdclass="style5">
Multiplicant:
</td>
<td>
<inputid="txtSecond"type="text"/>
</td>
</tr>
<tr>
<tdalign="center"colspan="2">
<inputid="btnMultiply"type="button"value="Multiply"
onclick="ResetTable();Multiply();"
style="color:#3399FF"/>
</td>
</tr>
</table>
<tableclass="style1"cellpadding="2"cellspacing="2"
id="tblResults">
<trstyle="color:White">
<tdbgcolor="#3366FF">
Iteration
</td>
<tdbgcolor="#3366FF">
Step
</td>
<tdbgcolor="#3366FF">
Multiplier
</td>
<tdbgcolor="#3366FF"class="style2">
Multiplicant
</td>
<tdbgcolor="#3366FF">
Product
</td>
</tr>
</table>
</body>
</html>
希望本文所述对大家的javascript程序设计有所帮助。