幾個月前我剛剛開始學習彙編,希望得到一份關於Uni的任務的幫助。彙編語言8086 - 無法添加相對數量
問題的說法是:
Being given a string of bytes, sort it ascending
我的代碼是:
assume cs:code,ds:data
data segment
S1 db 2, 4, 2, 5, 2, 2, 4, 4 ;given string
L1 EQU $-S1
index1 db 0
index2 db 0
cont db 0
data ends
code segment
start:
mov AX,data
mov DS,AX
sort1:
inc index1
sort2:
inc index2
cmps S1[index1],S2[index2]
jg switch
jng fin1
switch:
mov S1[index1],AL
mov S1[index2],AH
mov S1[index1],AH
mov S1[index2],AL
fin1:
cmp index2,L1
JL sort2
JNL sort1
mov ax, 4C00h
int 21h
code ends
end start
的問題是,當我渦輪調試編譯它,它會提示錯誤「不能添加相對數量「(準確的說是22,28,32,33,34,35行)
爲什麼會出現此錯誤提示以及如何解決問題,謝謝!
幾次有你正在嘗試使用一種不存在的尋址形式。從內存中讀取值作爲地址計算的一部分甚至不可能接近。 – harold
*「幾個月前」* ..更像*「just」*開始。無論如何,所以開始時,先閱讀一些理論,然後再次嘗試編程。在目前的水平上,你不能用asm編程,只是猜測,如果你對combinatorics有什麼好處,你可以很容易地計算出有多少可能性來填充例如100個字節的隨機指令,它有可能作爲你想要的是零。你如何使用turbo調試器進行編譯?我知道如何在調試器中覆蓋一些代碼時編譯單條指令,但從未看到它編譯整個源代碼,因爲使用了Turbo Assembler。 – Ped7g
國際海事組織這個最近的問題和答案可以給你一些見解,重點在哪裏:http://stackoverflow.com/q/40719027/4271923(它不是重複的,但答案可能會填補你現在有很多空白)。 – Ped7g