怎樣在linux 底下插入一段組合語言程式碼 |
尚未結案
|
turtlesmart
一般會員 發表:1 回覆:2 積分:0 註冊:2003-12-02 發送簡訊給我 |
|
mihopaul
一般會員 發表:25 回覆:59 積分:16 註冊:2002-03-17 發送簡訊給我 |
建議你可以去看你linux下的Source code 如 string.h
這裡面的程式都是inline 組語
可以順路學學 strcpy是如何寫的~~
這二個網頁有個簡單的教學
http://www-900.ibm.com/developerWorks/cn/linux/l-assembly/index.shtml
http://www.lisoleg.net/lisoleg/applications/index.html 此外建議你可以把自已的程式碼貼一小小段上來,不然方向太大,別人
可能也不知道該如何跟你說~~只能像我這樣給個大方向^^""" FYI
|
turtlesmart
一般會員 發表:1 回覆:2 積分:0 註冊:2003-12-02 發送簡訊給我 |
嗯..抱歉沒把問題說的很清楚
假設目前有char a[512] 想把前508個bit相加的總合放入後4 bit
我是嘗試用外部副程式去呼叫 在C 裡 打上 client(a); 執行
但是如果想用inline的方式那就不知要如何實行 (這是小弟我不久前的作業成品,也希望各位前輩能有所指教) -------------------/副程式/-----------------------
BIT32
global client
client:
push ebp
mov ebp,esp
mov dword ebx,0
mov dword eax,0
mov word cx,508
mov byte dh,0
mov byte dl,4
mov edi,[ebp 8]
label:
mov al,[ebx edi]
inc ebx
dec cx
cmp cx,0
je label4
label1:
shl al,1
jc label2
jnc label3
label2:
inc eax
inc dh
cmp dh,8
je label
jne label1
label3:
inc dh
cmp dh,8
je label
jne label1
label4:
push eax
pop ax
mov [edi 508],al
mov [edi 509],ah
pop ax
mov [edi 510],al
mov [edi 511],ah
pop ebp
ret
|
turtlesmart
一般會員 發表:1 回覆:2 積分:0 註冊:2003-12-02 發送簡訊給我 |
嗯..抱歉沒把問題說的很清楚
假設目前有char a[512] 想把前508個bit相加的總合放入後4 bit
我是嘗試用外部副程式去呼叫 在C 裡 打上 client(a); 執行
但是如果想用inline的方式那就不知要如何實行 (這是小弟我不久前的作業成品,也希望各位前輩能有所指教) -------------------/副程式/-----------------------
BIT32
global client
client:
push ebp
mov ebp,esp
mov dword ebx,0
mov dword eax,0
mov word cx,508
mov byte dh,0
mov byte dl,4
mov edi,[ebp 8]
label:
mov al,[ebx edi]
inc ebx
dec cx
cmp cx,0
je label4
label1:
shl al,1
jc label2
jnc label3
label2:
inc eax
inc dh
cmp dh,8
je label
jne label1
label3:
inc dh
cmp dh,8
je label
jne label1
label4:
push eax
pop ax
mov [edi 508],al
mov [edi 509],ah
pop ax
mov [edi 510],al
mov [edi 511],ah
pop ebp
ret
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |