1樓:匿名使用者
開始講的是c語言和彙編的混合程式設計這是arm彙編
不知道你用的彙編是什麼彙編?
如何在c語言中嵌入彙編?
2樓:匿名使用者
你寫int 21h當然不會通過了。
應該寫 int 0x21才對
如何在c語言中嵌入匯程式設計序
組合語言是怎麼呼叫c語言的程式的? 5
3樓:育知同創教育
一、 引數傳遞的基本規則(atpcs(arm—thumb procedure call standard))
1、 引數傳遞
二、匯程式設計序、c程式相互呼叫舉例
1、 c程式呼叫匯程式設計序
匯程式設計序的設計要遵守atpcs(arm—thumb procedure call standard),保證程式呼叫時引數的正確傳遞。在匯程式設計序中使用export 偽操作宣告本程式,使得本程式可以被別的程式呼叫。在c程式使用extern宣告該匯程式設計序。
下面是乙個c程式呼叫匯程式設計序的例子。其中匯程式設計序strcopy實現字串複製功能,c程式呼叫strcopy完成字串複製的工作。
//c程式
#include
extern void strcopy(char *d, const char *s);
int main( )
;匯程式設計序
area scopy, code, readonly
export strcopy
strcopy
ldrb r2, [r1], #1
strb r2, [r0], #1
cmpr2,#0
bne strcopy
mov pc, lr
end2、 匯程式設計序呼叫c程式
匯程式設計序的設計要遵守atpcs,保證程式呼叫時引數的正確傳遞。在匯程式設計序中使用import偽操作宣告將要呼叫的c程式。下面是乙個匯程式設計序呼叫c程式的例子。
其中在匯程式設計序中設定好各引數的值。本例中有6個引數,分別使用暫存器r0存放第1個引數,
r1存放第2個引數, r2存放第3個引數, r3存放第4個引數, 第5個、第6個引數利用資料棧傳送。由於利用資料棧傳遞引數,在程式呼叫結束後要調整資料棧指標。
//c程式g( )返回6個引數的和
int g( int a, int b, int c, int d, int e, int f )
; 匯程式設計序呼叫c程式 g( ) 計算6個整數 i, 2*i, 3*i, 4*i, 5*i, 6*i的和
export f
area f ,code, readonly
import g
mov r0, #1
add r1, r0, r0
add r2, r1, r0
add r3, r2, r0
add r4, r3, r0
add r5, r4, r0
str r4, [sp, #-4]!
str r5, [sp, #-4]!
bl g
add sp, sp, #4
add sp, sp, #4
stop b stopend
4樓:匿名使用者
1、組合語言程式可以將c語言可執行程式作為外部獨立程式執行;
2、將c語言程式模組編譯成obj檔案,在組合語言中可作為外部模組呼叫這個obj,用link程式可將它們裝配成整體執行。
5樓:物理公司的
匯程式設計序呼叫c程式。
匯程式設計序的設定要遵循atpcs規則,保證程式呼叫時引數的正確傳遞。匯程式設計序呼叫c程式的方法如下:
在匯程式設計序中使用import偽指令宣告將要呼叫的c程式函式;
在呼叫c程式時,要正確設定入口引數,然後使用bl指令呼叫
C語言如何呼叫系統時間,C語言中 如何獲取系統時間
include include int main c語言中 如何獲取系統時間 include int main time t timep struct tm p time timep p gmtime timep printf d n p tm sec 獲取當前秒 printf d n p tm m...
使用組合語言寫課程設計,用組合語言如何編寫計算n!的課程設計
彙編,好久沒用的語言了。難度不小啊 用組合語言如何編寫計算n!的課程設計 本程式通過編譯,執行正確 code segment assume cs code,ds coden equ 8 start mov cx,n cmp cx,1 n 1?ja next 是,階乘 mov ax,1 n 1,n 1...
微機原理,用彙編,不要c語言,謝謝
dseg segment org 100h data db 256 dup 0 dseg ends cseg segment assume cs cseg,ds dsegstart mov ax,dseg mov ds,ax fill data s value mov cx,256 mov bx,0...
c語言中函式能呼叫函式嗎,C語言中函式能呼叫函式嗎
來自天鵝洞尊敬的薔薇 你說的是函式巢狀吧?可以的 只是你這個函式a 應該後面沒有分號的! 這很明顯是可以的,你想想,主函式也是乙個函式對不對,可是裡面又呼叫有printf scanf 函式,所以,學習語言是要很靈活的,畢竟你不可能只靠一種語言。補充下 呼叫可以巢狀,但是定義不可以。 可以呼叫的 但是...
c語言函式呼叫問題,C語言如何呼叫函式
int 和 void 的區別 int 返回值,void 不返回值。當需要返回值給主函式時,用int 當不需要返回值給主函式時,用void。至於括號裡的內容 int n是接收主函式的實參作為形參,就是函式中要用到這個形參。如果不需要從主函式中接收實參,那麼就用void。至於返回值 當函式返回值給主函式...