彙編 一組數的最大值 AT T語法

2021-09-30 17:26:18 字數 890 閱讀 3681

下面的程式出自 <

.section .data

data_items:

.long 3,67,34,222,45,75,54,34,44,33,22,11,66,0 #.long指示表明一組數,每個數占32位,相當於c語言的陣列。這個陣列開頭定義了乙個符號data_items,彙編器會把陣列的首位址作為data_items符號所代表的位址。

#除了.long之外,常用的資料宣告還有:.byte,也是宣告一組數,每個數占8位

#.ascii,例如.ascii"hello world",宣告11個數,取值為相應字元的ascii字元。和c語言不同,這樣宣告的字串末尾是沒有『\0』字元的,如果需要以'\0'結尾可以宣告為.ascii "hello world\0"

.section .text

.globl _start

_start:

movl $0, %edi #初始化edi為0,edi用來記錄陣列的下標

movl %eax, %ebx

start_loop:

cmpl $0, %eax #作用:將兩個運算元相減,但是計算結果並沒有儲存,只是根據結果改變eflags暫存器中的標誌位。如果兩數相等則計算結果為0,eflags中的zf位1。

incl %edi #作用:將edi的值加1

movl data_items(,%edi,4), %eax

cmpl %ebx, %eax

jle start_loop #作用:表示「jump if less than or equal」

movl %eax, %ebx

jmp start_loop

loop_exit:

movl $1, %eax

int $0x80 #無條件跳轉

求一組數中,最大值方法

原貼 http munity.csdn.expert topic 4169 4169825.xml?temp 4744684 我有一張表a bmmc,bmbh,lxr,tel,value 現在要求按bmbh分類,並把相應的value最大的那條記錄顯示出來,即a bmmc bmbh,lxr,tel,v...

比較一組數的最大值或最小值

public static void main string args int max num 0 認為陣列裡的是乙個數為最大值 int min num 0 認為陣列裡的是乙個數為最小值 for int i 0 i num.length i system.out.println 最大值 max sy...

尋找一組數的最大值並統計出現次數

題目如下 用我蹩腳的英文水平翻譯如下 尋找最大值和它的出現次數 問題描述 請書寫乙個能讀取一組整數的程式,尋找其中的最大值並統計出現次數。最初賦值第乙個數為max並把count賦值為1,遍歷剩下的數字並與之做比較。如果這個數大於max,則把它賦值為max,同時重置count為1,如果這個數等於max...