1樓:
以下子程式假設默陣列認放在ds段中,其中的資料為dw型。呼叫子程式前的引數設定:bx中存放陣列的起始偏移地址,cx中存放陣列的長度。呼叫子程式後,陣列的最大值放在cx中。
array_max: push ax
mov ax,[bx] ;把陣列第一個數放到ax中
find: cmp ax,[bx] ;把ax中的數與陣列中的數逐個進行比較
ja next ;如果ax中的數比陣列中當前的數大則轉到next
mov ax,[bx] ;如果ax中的數小於或等於陣列中當前的數,則進行替換
next: add bx,2 ;對比下一個數
loop find
mov cx,ax ;把找出的最大值放入cx中
pop axret
2樓:做而論道
組合語言,有好多種。
是不是這樣的:
8086組合語言求陣列中的最大值的程式,誰會?急求……⊙﹏⊙
編寫完整組合語言程式,從長度為100的無符號字陣列array中找出最大的數,存放在變數max中?急!!!
3樓:匿名使用者
data segment
array dw 20 dup(20),80 dup(30)org 1000h
max dw ?
data ends
code segment
assume cs:code,ds:datastart:mov ax,data
mov ds,ax
mov [max],20
mov cx,100
mov si,offset array
s:mov ax,[max]
cmp ax,ds:[si]
jb swap
inc si
loop s
jmp ed
swap:mov ax,ds:[si]
mov [max],ax
jmp s
ed:mov ah,4ch
int 21h
code ends
end start
這裡我把max的地址定位1000h,是為了方便我檢視檢驗結果,經驗證為1eh 即30 題中說是100個無符號數 我是為了方便 所以直接定義20個20,80個30
微機原理組合語言:求陣列元素的最大值和最小值
4樓:做而論道
程式執行後,最大、最小值,都儲存到指定的儲存單元了。
沒有顯示結果,是因為,這程式裡面,並沒有編寫顯示資料的程式段。
用組合語言編寫,將一個包含10個帶符號數的陣列分成正數陣列和負數陣列。要**!
5樓:匿名使用者
data segment
num db 1,2,...,10 ;這個你隨便寫10個位元組的資料
p db 10 dup(?) ;正陣列pnum db 0 ;正計數n db 10 dup(?) ;負陣列nnum db 0
data ends
code segment
assume cs:code,ds:datamain proc far
start: push ds
mov ax,0
push ax
mov ax,data
mov ds,ax ;初始化完畢
mov bx,0
mov si,bx
mov di,bx
mov cx,10 ;設定相關引數
lop1: mov al,num [bx] ;取原始陣列元素cmp al,0
jge p1 ;為正則轉p1mov n [di],al
inc di
inc nnum ;負陣列增加,計數變化jmp next
p1: mov p [si],al
inc si ;正陣列增加,計數變化inc pnum
next: inc bx ;原始陣列指標偏移loop lop1 ;迴圈10次--cxret ;結束
main endp
code ends
end start
5 5 4 0 0這幾個陣列成最大數值是多少
可以組成的最大數值是 九百九十五萬五千四 方法 將其排序,大的放在高位,依次排列下去。9 9 5 5 4 0 0這幾個陣列成最大數值是多少?9的955400次方,這是組成的最大的數,如果你是在玩最囧遊戲2的話,那就是選00就好了,這意思是無窮大!可以組成的最大數值是 九百九十五萬五千四 方法 將其排...
ip地址的最大數值是多少
1 在inter 裡,ip地址來是一個 自32位的二進位制地址,為了便於 記憶,將它們分為4組,每組8位,由小數點分開,用四個位元組來表示,而且,用點分開的每個位元組的數值範圍是0 255,如202.116.0.1。2 從數值範圍可以判斷最大值為255。3 ip地址按節點計算機所在網路規模的大小分為...
c語言求各位數字組成的最大數,C語言求各位數字組成的最大數
其實吧,這個程式的核心思路也可以換種說法 就是給一個數由大到小排列 這一點你做出來了。一起 一下,我們一步步順著來看看 先來分析一下你那1100變成1001的問題 我用實際的過程讓你看一下程式執行過程吧 接下來是剝位置統計個數j,這一點很好。注意當前陣列的位置 然後實現了一次迴圈之後 第二重迴圈m ...