用組合語言編寫程式 從鍵盤輸入數 0 9 ,找其中最大值並顯示!急求!!謝謝

2021-08-13 08:51:13 字數 1861 閱讀 8437

1樓:匿名使用者

;程式硬性規定了輸入要1 2 8 6 1 這樣輸入, 即每輸入1數字就要空一格

assume cs:code, ds:datadata segment

str db 0ah,0dh,"please input five number(0~9): $"

buf db 20

db ?

db 20 dup (?)

max db ?

crlf db 0ah,0dh,'$'

data ends

code segment

start:

mov ax,data

mov ds,ax

;列印提示字元

lea dx, str

mov ah,9

int 21h

;接收使用者輸入字元

lea dx, buf

mov ah,10

int 21h

;程式主體

mov cl,4

lea si,buf+2

mov al, [si]

mov max,al

next:add si,2

mov al,[si]

cmp max,al

jg done;檢查max是否大於al,如果是跳轉到done,否則交換max,al的值(即執行xchg max,al)

xchg max,al

done:loop next

;輸出空行

lea dx,crlf

mov ah,9

int 21h

;輸出最大值

mov ah,2

mov dl,max

int 21h

;結束mov ax,4c00h

int 21h

code ends

end start

masm link 執行通過

ps:若有不明白的地方,可以追問

2樓:

.......

mov cx,5 ;cx用於計數

xor bx,bx ;bl放最大數,先預置為0loop1:

mov ah,1 ;輸入一個數

int 21h

cmp bl,al ;是不是比上一個數大jnc loop2

mov bl,al ;如果新輸入的數大,就換成該數loop2:

loop loop1 ;轉去處理下一個數

mov dl,bl ;輸出最大數

mov ah,2

int 21h

..............

3樓:之鑲巧

輸出格式,如回車換行自己寫的。

**段assume cs:code

mov ah,start:1

int 21h

mov bh,al

int 21h < / mov bl,alint 21h

mov cl,al,bh,bl,cl輸入三個字元。

cmp bh,bl

ja c1

cmp bl,cl

ja p2

jmp p3

c1:cmp bh ,cl

ja p1

jmp p3

p1:mov ah,2

mov dl,bh

jmp ed

p2:mov ah ,2

mov dl,bl

有jmp ed

p3:mov ah,2

mov dl,cl

ed:int 21h

mov ah,4ch

int 21h

的**最終

end start

編寫程式,從鍵盤輸入字元,若為大寫字母則轉換為小寫字母輸出,若為小寫字母則

include main include int main 如何編寫一個 若為大寫字母則轉換為小寫字母輸出,若為小寫字母則輸出大寫字母 的程式?寫一個程式,要求由鍵盤輸入一個字元,若為大寫字母輸出a若為小寫字母輸出a,可以參考下面的 include void main include void ma...

編寫程式,從鍵盤輸入兩個整數給a和b,求他們的和,差,商數和

include void main include int main 結果 input a,b 9 5a b 14 a b 4 a b 45 a b 1 a b 4 c語言程式設計.由鍵盤輸入兩個整數,分別計算這兩個數的和 差 積 商,並輸出結果。具體輸入如下 include stdio.h mai...

求大神幫忙,編寫C語言程式,從鍵盤輸入兩個整數,輸出這兩

include intmain 擴充套件資料 bai 輸入du兩個數 zhi字,並dao 計算出內兩個數的最容小公倍數 include inti ax inta,intb intmain intargc,constchar argv inti ax inta,intb y a max b max m...