彙編問題,高手幫忙。彙編計算問題,求高手指導下我這個小菜吧

時間 2025-01-08 20:05:22

1樓:自動化設計製造

任意寫即可!存放n個有符號或無符號,或只是其中一種情況!

n個無符號的相應程式:

org 0300h

ax data 20h

dx data 21h

buf data 22h

mov r2,#n

mov r0,#buf

mov ax,#ffh

loop1:mov a,@r0

cjne a,ax,next1 比較最小部分;

next1:jnc next2

mov ax,a

next2:inc r0

djnz r2,loop1

nopnop

mov r3,#n

mov r0,#buf

mov dx,#00h

loop2:mov a,@r0

cjne a,dx,zuida 取最大部分;

zuida:jc out

mov dx,a

out:inc r0

djnz r3,loop2

nopnop

sjmp $

end n個有符號數程式:

根據ov狀態來判斷帶符號數的大小:

若x-y為正數,則:在ov=0時x>y

在ov=1時xy

相應程式:org 0400h

ax data 30h

dx data 31h

buf data 32h

mov r2,#n-1

mov r0,#buf 此部分為取最小值;

mov ax,@r0

noploop1:inc r0

mov a,@r0

clr csubb a,ax

jz xiao

nopjnb ,zheng

jnb ov,xiao

sjmp loop2

zheng:jb ov,xiao

sjmp loop2

xiao:mov a,@r0

mov ax,a

loop2:djnz r2,loop1

nopnop

mov r3,#n-1

mov r0,#buf

mov dx,@r0

noploop3:inc r0

mov a,@r0

clr csubb a,dx

jz max

nop 此部分為取最大值;

jb ,fushu

jnb ov,max

sjmp chu

fushu:jb ov,max

sjmp chu

max:mov a,@r0

mov dx,a

chu:djnz r3,loop3

nopnop

sjmp $end

2樓:

可以是有符號的也可以是無符號的,分開來弄的吧,不是同時處理他們的混合~~

彙編計算問題,求高手指導下我這個小菜吧

3樓:網友

基本的定址問題。

如果mov ax, 1352h,這就是立即數定址,那麼ax = 1352h,這個很好理解了。

如果mov ax, [1352h],這是什麼定址我也說不上來了,總之結果是ax = ds:[1352h],即ax等於ds段裡,偏移位址為1352h的那塊記憶體裡的值。

因為ds = 1000h,所以ds:[1352h] = ds * 10h + 1352h = 11352h。就是段位址左移四位,加上偏移位址,就構成了20位的實體地址。

因為ax是個16位的暫存器,所以要讀取兩個位元組,從11352h位址開始,讀取兩個位元組到ax裡。intel的cpu是小端優先,所以讀取結果是,ax高8位等於11353h位址裡的值即26h,低8位等於11352h位址中的值即0ffh,所以ax = 26ffh。

如果是mov al, [1352h],因為al是個8位暫存器,所以只用讀乙個位元組即可,此時al = 0ffh。

4樓:匿名使用者

ax是雙位元組指令!它要連續取兩個位元組的資料,低位址取來放到低位元組,高位址取來放到高位元組!這個語句就相當於。

mov al [1352h]

mov ah [1353h]

組合語言問題,菜鳥請求高手,組合語言問題,輸出了正確結果,但是下面還輸出了許多亂碼??

湯旺河邊 dos功能呼叫9號功能 顯示以ds dx開始的字串,當遇到乙個 時,結束顯示。樓主程式中,lea si,aa add si,5 mov byte ptr si 把字串中第4個字元改為 致使顯示前3個字元之後,結束顯示,這是導致 只是輸出前3個 的癥結所在。把這三條指令的後兩條刪掉即可。下面...

彙編高手幫幫忙,彙編高手幫幫忙

如果是學組合語言專門的就是 ibm pc組合語言程式設計 清華 沈美明的那本 至於16為還是32位這個好象都是要學的,不過現在一般都是16位的吧。至於那個tasm5.0,我只聽說過masm5.0 不好意思,不過現在彙編應該用的比較多的是masm5.0下面有使用方法 1.開始 執行 輸入 cmd 沒有...

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

有彙編和c轉化的軟體 for i 0 i 9 i for j i 1 j 10 j if a i a j 這個c是對的不過你還少了點東西.下面的彙編我倒是看的很對但是有點還是沒有看明白.你的意思是每次si和di都因該加2是在儲存資料時佔用的2個位元組. data segment assume ds ...