利用組合語言寫出高效的3x 1程式

時間 2021-05-07 20:00:17

1樓:愛因景潤

unsigned long d;

__asm

這個程式我除錯過了,只要運算過程中不出現越界就沒問題。變數d你定義到資料段中就行了。

另外我還除錯了一下你給的**,好像無論怎樣都jmp start6,根本跳不出來耶。

還有據我理解,你的**是往前看好幾步,然後2個4個的往上加,我不知道你為什麼採用這種演算法,而不是1個1個地加。

2樓:快樂居家美食

呵呵,用c語言做,然後把個好編譯器編譯,最好再把編譯的東西反編譯成彙編就ok了

3樓:匿名使用者

while(n)}}

4樓:匿名使用者

注意:至少要比以下的程式效率高:

start6:

__asm test ax, 1

__asm jz evenpre6

//oddpre6

__asm test ax, 2

__asm jz res126

//res36:

__asm add di, 2

__asm add si, 4

__asm mov ecx, eax

__asm mov edx, ebx

__asm shl eax, 1

__asm rcl ebx, 1

__asm inc eax

__asm shrd ecx, edx, 2__asm shr edx, 2

__asm stc

__asm adc eax, ecx

__asm adc ebx, edx

__asm jmp start6

evenpre6:

__asm test ax, 2

__asm jnz res126

//res06:

__asm add si, 2

__asm shrd eax, ebx, 2__asm shr ebx, 2

__asm jmp start6

res126:

__asm add si, 3

__asm inc di

__asm mov ecx, eax

__asm mov edx, ebx

__asm shrd ecx, ebx, 2__asm shr edx, 2

__asm sub eax,ecx

__asm sbb ebx, edx

__asm jmp start6

5樓:

容我再想想 現在讀完你的程式 覺得就是有點問題 太繁了點吧 你把 郵件地址放下 我回頭髮給你吧

6樓:

暫時想不出什麼更高的,但肯定比編譯器效率高很多。

組合語言mul是啥意思 如何用,組合語言MUL是啥意思 如何用???

結果放在a裡面 這個說法是不對的,應該說結果的高8位放在b裡,低8位放在a裡,因為8位 8位結果有可能很大,8位數一般成不下,2 1,一個位元組能成下 所以b 0,a 2 這是湊巧了。是乘法指令,用法如 mov a,01 mov b,02 mul ab 就是累加器a與累加器b相乘,結果放在a裡面,按...

用組合語言編寫程式計算5 10

超級花生 dseg segment result dw 存放和 dseg ends cseg segment assume cs cseg,ds dsegstart mov ax,dseg mov ds,ax mov ax,5 從5開始加 mov result,0 和的初值賦0 mov cx,20 ...

用組合語言寫一程式,利用定時計數器,定時一秒,數碼管秒個位加1,同時有LED燈在迴圈流動

做而論道 定時器定時一秒,一個數碼管秒個位加1,同時八個led燈迴圈流動很簡單的題目,只能寫很簡單的程式 org 0000h jmp start org 000bh inc r2 reti start setb tr0 mov ie,82h mov r3,127 lp mov r4,0 dp mov...