模式(小例9 2)

2021-06-19 04:03:52 字數 1672 閱讀 3797

今天在這裡:

先列印這cpsr;通過一條未定義指令,進入異常處裡,列印cpsr,又回到之前的那個模式;然後再列印cpsr

test.c=>vector.s=>test.c==>結束

test.c如下:

int (*printf)(char *,...) = (void *)0x57e11d4c;//將乙個函式指標指向0x57e11d4c的位址。

int main()

vector.s如下:

mov sp,#0x56000000  //在記憶體中的0x56000000中開闢乙個棧空間。

mov ip,sp

s***b sp!,

sub fp,ip,#4

mrs r1,cpsr   //在r1與r2 中放printf的兩個引數。

and r1,r1,#0x1f

ldr r0,=string

ldr r2,printf

blx r2

mov sp,#0x56000000

ldmdb sp,^

string:

.asciz "hello unfined mod is %x\n"

.align 2

printf:

.word 0x57e11d4c

makefile如下:

all:

arm-none-linux-gnueabi-gcc -c vetor.s -o vetor.o

arm-none-linux-gnueabi-ld -ttext=0x4 vetor.o -o vetor//上面有一張表未定義指令位址為0x4

arm-none-linux-gnueabi-objcopy -ielf32-littlearm -o binary vetor vetor.bin

cp vetor.bin /tftpboot/

arm-none-linux-gnueabi-gcc -c test.c -o test.o

arm-none-linux-gnueabi-ld -ttext=0x50000000 test.o -o test

arm-none-linux-gnueabi-objcopy -ielf32-littlearm -o binary test test.bin

cp test.bin /tftpboot/

clean:

rm -rf *.o *.bin   /tftpboot/*.bin

最後的列印結果如下:

併發單例模式小總結

單例模式,設計模式中最常用也是最簡單的一種的設計模式。設計模式的作用或者說使用場合想必大家都知道,主要用在實際應用只需要例項化一次的場合,網上的例子也很多,什麼印表機的例子等等。我在專案中也是用過單例模式,當時是由於專案需要,需要在應用中動態配置資料庫連線池,而這種資料庫連線池的配置就只需要在單例模...

小桐學設計模式 單例模式

單例模式分為兩種,懶漢式和餓漢式。首先看懶漢式 public class a public static a getinstance return a 再來看餓漢式。public class a public static a getinstance 懶漢式在執行getinstance方法時,判斷條...

小話設計模式(一)單例模式

那麼具體要求是什麼樣的呢?簡而言之,在程式執行期間,單例類的例項只能有乙個 或沒有 恩?說好的是類似於全域性變數的東西呢?當然為了能在程式任何地方呼叫它,需要為它實現乙個靜態方法 例如getinstance 通過這個方法可以獲得單例類的唯一例項。廢話不多說直接上c public class sing...