微機匯程式設計序

2021-08-20 15:42:27 字數 3169 閱讀 5312

又是自學的一學期,呵呵。

學到最後也就知道零星半點指令吧,複雜的程式可能還是不怎麼會寫,熟練當然也不敵c了,但是彙編之於嵌入式,往上走肯定少不了遇到,學好還是必要的!此次僅作入門吧。

今日所學,明日之用。

1、統計正負零的個數

datas segment

array db 1,2,-1,0,2,0,-2,4,2,0

posinum db 0

neganum db 0

zeronum db 0

datas ends

codes segment

assume cs:codes,ds:datas

start:

mov ax,datas

mov ds,ax

xor al,al

lea si,array

mov cx,10

cldlooper:

lodsb

or al,al

js nega

jz zero

inc posinum

jmp exit

nega:

inc neganum

jmp exit

zero:

inc zeronum

exit:

loop looper

mov ah,02h

;正數的個數

or posinum,30h

mov dl,posinum

int 21h

mov dl,' '

int 21h

;零的個數

or zeronum,30h

mov dl,zeronum

int 21h

mov dl,' '

int 21h

;負數的個數

2、變數x乘以8

3、程式設計實現任意給定x值,根據x的值確定函式y的值y和x的函式關係沒給,那就隨便寫個 y=x2y=x2

4、兩個數的平均值

5、符號函式

datas segment

x db 0

y db ?

datas ends

codes segment

assume cs:codes,ds:datas

start:

mov ax,datas

mov ds,ax

mov al,x

cmp al,0

jge loop1

mov al,-1

movy,al

ret;別忘了ret

loop1:

jg loop2

mov al,0

movy,al

retloop2:

mov al,1

movy,al

retmov ah,4ch

int 21h

codes ends

end start

匯程式設計序 退出

作為第乙個匯程式設計序,本程式除了退出以外,並沒有執行其他的功能。目的 退出並向linux核心返回乙個狀態碼的簡單程式 輸入 無 輸出 返回乙個狀態碼.在執行程式後可通過輸入echo 來讀取狀態碼 變數 eax儲存系統呼叫號 ebx儲存返回狀態 section data section text g...

匯程式設計序呼叫c程式

首先是匯程式設計序,還是前面的例子,只是加了2行程式 extern main 說明這個函式從外面程式獲得 section data charact db a section text global start start mov ecx,charact push ecx call usestack ...

unix 匯程式設計序入門

有兩種方式執行系統呼叫 使用c庫,或者直接系統呼叫。c庫的函式並不全部是系統呼叫外包,例如printf,malloc。直接的核心呼叫,更快速的獲得核心服務。linux下的使用方法,eax中放呼叫號,可以在asm unistd.h中查到。可傳遞6個引數,ebx,ecx,edx,esi,edi,ebp。...