又是自學的一學期,呵呵。
學到最後也就知道零星半點指令吧,複雜的程式可能還是不怎麼會寫,熟練當然也不敵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。...