當前位置:法律諮詢服務網 - 法律援助 - 匯編語言:在數據段中,字數組有n個元素,數組中的負數求其絕對值後降序排列,由子程序實現。

匯編語言:在數據段中,字數組有n個元素,數組中的負數求其絕對值後降序排列,由子程序實現。

之前回答:

/ASM _ c/blog/static/2482031132015581028111

使用子程序,會比較麻煩,如下:

數據段

ARRAY1?DW?0,?-1,?2,?3,?4,?-5,?6,?-7,?8?,?9,?-10

數數?EQU?$?-?數組1

ARRAY2?DW?20?DUP(?);找到絕對值後存儲的新數組。

LENDW新數組長度?

MSG1DB?13,?10,?之前?排序?:?$'

MSG2DB?13,?10,?AfterSort?:?$'

數據?結束

代碼?段

假設?CS:?碼,?DS:?數據

開始:

MOVAX,?數據?

MOVDS,?削減

MOVAH,?09H

LEADX,?MSG1

INT21H?;顯示提示字符串MSG1

蕾斯?數組1

打電話?輸出;調用輸出數組子例程OUTPUT來顯示原始數據。

打電話?絕對?;調用Absolute子例程來求絕對值。

打電話?排序?;調用排序子例程sort對數組進行排序。

MOVAH,?09H

LEADX,?MSG2

INT21H?;顯示提示字符串MSG2?

蕾斯?數組2

打電話?輸出;調用輸出數組子程序OUTPUT來顯示求絕對值後的數據?

退出:

MOVAH,?4CH

INT21H?;主程序返回DOS

;- ?

;子程序名:排序

;功能:?

排序?PROC?附近?

;請在此添加代碼。

MOVCX,?數數

SHRCX,?1

DECCX

S0:?推?CX

莫夫迪,?國際度量單位制

S1:?MOVAX,?[迪]

CMPAX,?【迪?+?2]

JAS3

XCHG?AX,?【迪?+?2]

XCHG?AX,?[迪]

S3:?ADDDI?2

循環?S1

POPCX

循環?S0?

浸水使柔軟

排序?ENDP

;- ?

;子程序名:絕對

;功能:求絕對值?

絕對?PROC?近的

;請在此添加代碼。

蕾斯?數組1

LEADI?數組2

MOVCX,?數數

SHRCX,?1

ABS:

MOVAX,?[西]

CMPAX,?0

JGEABS2

NEGAX

ABS2:

MOV[迪],?削減

ADDSI?2

ADDDI?2

循環?防抱死制動裝置

浸水使柔軟

絕對?ENDP?

;- ?

;子程序名:輸出

;功能:輸出數組

輸出?PROC?附近?

;請在此添加代碼。

MOVAH,?2

MOVDL,?13

INT21H

MOVDL,?10

INT21H

MOVCX,?數數

SHRCX,?1

ZH3:

MOVAX,?[西]

CMPAX,?0

JGEZH0

NEGAX

MOV[SI],?削減

MOVAH,?2

MOVDL,?'-'

INT21H

ZH0:MOVAX,?[西]

MOVBX,?10

推?CX

MOVCX,?0

ZH1:MOVDX,?0

DIVBX

ADDDL,?'0'

推?高級的(deluxe的簡寫)

INCCX

CMPAX,?0

JNZZH1

MOVAH,?2

ZH2:POPDX

INT21H

循環?ZH2

POPCX

MOVDL,?'?'

INT21H

ADDSI?2

循環?ZH3

浸水使柔軟

輸出?ENDP

;-

共端

結束開始

  • 上一篇:不註銷戶口會有什麽後果?
  • 下一篇:機動車未按規定進行定期安全技術檢驗如何處罰?
  • copyright 2024法律諮詢服務網