高分彙編程式設計,高手來幫幫忙

時間 2021-06-07 14:40:30

1樓:匿名使用者

有彙編和c轉化的軟體

2樓:匿名使用者

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)

if(a[i]>a[j])

這個c是對的不過你還少了點東西......

下面的彙編我倒是看的很對但是有點還是沒有看明白....

你的意思是每次si和di都因該加2是在儲存資料時佔用的2個位元組.

3樓:匿名使用者

data segment

assume ds:data

buff db 11,?

db 11 dup(20h)

db '$'

data ends

code segment

assume cs:code

main proc far

mov ax,data

mov ds,ax

mov es,ax

mov dx,offset buff

mov ah,0ah ;注意21h號中斷所得的字串中int 21h ;buff+2才是字串首mov ah,2

mov dl,0dh

int 21h

mov dl,0ah

int 21h

begin:

mov si,offset buff+1 ;判斷buff所有元素是否都成了空格

mov cx,0 ;計算空格

up:inc cx

cmp cx,0ah ;

jz exit

inc si

cmp byte ptr [si],24h ;是否到了結尾jz ok

cmp byte ptr [si],20h ;是否空格jz up

ok:mov si,offset buff+2

mov bl,0

next:

lodsb

cmp al,24h

jz show

cmp al,bl

jl next

mov bl,al

jmp next

show:

mov si,offset buff+1

conti:

inc si

cmp byte ptr [si],24hjz begin ; 跳到冒泡法下一輪

cmp bl,byte ptr [si] ;

jnz conti

mov ah,2

mov dl,bl ;顯示一輪所得的最大值int 21h

mov byte ptr [si],20hjmp conti ;

exit:

mov ah,4ch

int 21h

main endp

code ends

end main

4樓:匿名使用者

crlf macro ;回車換行mov dl,0dh

mov ah,2

int 21h

mov dl,0ah

mov ah,2

int 21h

endm

data segment

dest db 10 dup(?),0dh,0ah,'$'

data ends

code segment

assume cs:code,ds:datastart: mov ax,data

mov ds,ax

mov es,ax

mov di,offset dest

mov cx,10

mov dl,' '

mov ah,2

int 21h

aga1: mov dl,8

mov ah,2

int 21h

aga2: mov ah,1

int 21h

cmp al,'a'

jb aga1

cmp al,'z'

ja aga1

stosb ;al 送入》es:[di]

loop aga2

crlf

mov dx,offset dest

mov ah,9

int 21h

mov bx,10

mov di,offset dest

dec di

next: mov cx,bx

mov al,[di+1]

next1: cmp al,[di+2]

jae next2

xchg al,[di+2]

next2: inc di

loop next1

mov di,offset dest

add di,10

sub di,bx

mov [di],al

dec bx

jnz next

mov dx,offset dest

mov ah,9

int 21h

mov ah,4ch

int 21h

code ends

end start

5樓:

我以前的教材上都有。。

不過現在不知道書放**了。。你看看下面的罷。可能有點用

提問:對於氣泡排序,我的c語言這樣實現:

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)

if(a[i]>a[j])

我想用匯編也同樣實現功能,**如下:

dseg segment

data dw 23,12,45,32,127,3,9,58,81,72

dseg ends

cseg segment

assume cs:cseg,ds:dseg

stat: mov ax,dseg

mov ds,ax

lea bx,data

mov si,0 ;i=0

nexti: mov di,si ;j=i+1

inc di

mov ax,[bx+si]

jj: mov dx,[bx+di]

cmp ax,dx ;data[i]?data[j]

jae btiao

xchg ax,dx ;data[i]=data[j],j++

cmp di,10 ;j?10

jae ii ;j>=10

jmp jj ;j<10

ii: inc si

cmp si,9 ;i?9

jb nexti ;si<9

mov ah,4ch

int 21h

cseg ends

end stat

解答:你的程式演算法並沒有錯,錯在基本概念上。

你定義的變數的型別是字(word),佔2個位元組,但指標si和di只有一個inc,即只增了1,應該增2(再增加一個inc指令:程式中inc si和inc di後再加一個,共3處);同樣道理,迴圈終止判斷的條件“cmp di,10”和“cmp si,9”也應該修改為“cmp di,20”和“cmp si,18”。

或者修改data的變數定義為db、然後迴圈中ax和dx都改為al和dl就正確了。

這裡你將高階語言中的概念想當然地用到了組合語言中,混淆了兩種的區別。高階語言中i和j是陣列下標,表示第i和j個陣列元素;而組合語言中si和di指標指向的是儲存器地址,加1只是地址加1,不是資料個數加1,每個資料是2個位元組,佔2個儲存單元,所以地址加2才是資料個數加1。

哪為戀愛高手進來幫幫忙吧,戀愛高手來幫幫忙吧

很讓人矛盾.我感覺你喜歡你的同桌.因為你的青梅竹馬在一起從來不生氣.因為你們已經知道彼此的一切.還會有那種心動的感覺嗎?倆個人在一起就是哭哭笑笑打打鬧鬧.一點波折都沒有的愛情有趣嗎?而且你為他有物件而難過.說明你喜歡的還是你的同桌.你要下定決心.不要三個人都受傷.早點下決定吧 我暈 你的問題說的怎麼...

請語文高手來幫幫忙

歐陽修 別號醉翁 將進酒 李白 暢安希 將進酒李白君不見黃河之水天上來,奔流到海不復回。君不見高堂明鏡悲白髮,朝如青絲暮成雪。人生得意須盡歡,莫使金樽空對月。天生我材必有用,千金散盡還復來。烹羊宰牛且為樂,會須一飲三百杯。岑夫子,丹邱生,將進酒,杯莫停。與君歌一曲,請君為我傾耳聽。鐘鼓饌玉不足貴,但...

數學專家來幫幫忙啊,哪位數學高手來幫幫忙啊 感激不盡。速度來哇

工程問題是研究工作效率 工作時間和工作總量之間相互關係的一種應用題。我們通常所說的 工程問 題 一般是把工作總量作為單位 1 因此工作效率就是工作時間的倒數。它們的基本關係式是 工作總 量 工作效率 工作時間。下面列舉有關練習中常見的幾種題型,分別進 行思路分析,並加以簡要的評點,旨在使同學們掌握 ...