問題 - 使用Intel86模擬器,給定的3個1字節數X,Y和Z
(1<X,Y,Z<100)
, 編寫計算模冪運算 X ^ý模Z(實施例的代碼,X = 4,Y = 3,Z = 5結果= 4)。 X,Y和Z在 存儲位置107H,108H和109H你的程序中找到,所以請確保你 不使用這些字節的指示。計算結果 必須存儲在DL中。用於計算 的算法代碼模冪的模數爲:d,1。假設Y是由比特Yk,Yk-1,Yk-2,... Y0表示的 ,對於j < -k低至零 d <-(d d)%Z 如果Y1 == 1則d < - (d X)%Z結果在d中。任何人都能理解這些指令的要求,並知道如何在彙編中編寫這些指令?
-5
A
回答
0
似乎該算法措辭不佳,並且也倒退,假設目標是重複平方X mod Z以加速該過程。
R = 1;
goto loop1;
loop0:
if(Y & 1) /* if least signficant bit of Y is set */
R = (R * X) % Z;
X = (X * X) % Z
Y = (Y >> 1) /* logical (unsigned) shift right) */
loop1:
if(Y != 0)
goto loop0;
DL = R;
0
我想有一個錯字「IF Y1 ...」應該是「IF Yj ...」。此外,算法不完整,應該有任何地方轉移。下面是該算法C中的例子:
#include <stdio.h>
int main (void)
{
unsigned char X = 4, Y = 3, Z = 5;
printf("(%d^%d) %% %d = ",X,Y,Z);
unsigned int d = 1;
for (int j=7; j>=0; --j)
{
d = (d*d) % Z;
if (Y & 0x80) // leftest bit (Yj) set?
{
d = (d * X) % Z;
}
Y <<= 1;
}
printf("%d\n", d);
return 0;
}
如果我只知道什麼是「Intel86模擬器」是... ;-)
相關問題
- 1. 我需要幫助才能理解這些彙編指令
- 2. 解釋一些彙編指令
- 3. 這些ARM彙編指令的含義是什麼?
- 4. 需要約LEAVE指令彙編語言編寫了一些解釋
- 5. 這些ARM彙編指令做了什麼?
- 6. 解釋彙編指令
- 7. 這些MIPS指令有可能嗎?
- 8. ARM彙編指令
- 9. MSP430彙編指令
- 10. smulwb彙編指令
- 11. 如何編寫ngBindCompile指令?
- 12. 如果彙編代碼指令與機器代碼指令相同,我不理解這些彙編代碼和機器代碼區別
- 13. fsi.exe彙編:任何人都知道如何嵌入它?
- 14. 任何人都知道這是什麼編程語言?
- 15. 困惑的彙編指令
- 16. 彙編指令STRB的ARMv7
- 17. 任何人都知道如何解決這個錯誤突破?
- 18. 如何編寫這個特定的mod_rewrite指令?
- 19. 簡化,寫一條彙編指令
- 20. 這條指令在彙編中做了什麼?
- 21. 這些編譯器指令有什麼區別?
- 22. 彙編mips指令lbu
- 23. ARM彙編「retne」指令
- 24. 彙編比較指令
- 25. 彙編語言指令
- 26. PIC16F84A指令BSF - 彙編
- 27. 內聯彙編,out指令
- 28. pusha彙編語言指令
- 29. ARM彙編 - 分支指令
- 30. 彙編語言指令
如果你不明白你的任務,你應該跟你的導師關於它。 [所以]不是免費完成作業的地方。 –
考慮訪問http://stackoverflow.com/tour,瞭解SO的工作原理。 – brodoll
只需詢問某人是否可以比我的「導師」更好地將這個問題轉化爲我。 – Ian