汇编语言——正数数组P和负数数组N
生活随笔
收集整理的這篇文章主要介紹了
汇编语言——正数数组P和负数数组N
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
問題描述
試編寫一完整的匯編語言程序,將一個包含有20個數(shù)據(jù)的數(shù)組M分成兩個數(shù)組:正數(shù)數(shù)組P和負數(shù)數(shù)組N,并分別求出這兩個數(shù)組中數(shù)據(jù)的個數(shù)。
解決方案
DSEG SEGMENT COUNT EQU 20 ARRAY DW 20 DUP (?) ;存放數(shù)組 COUNT1 DB 0 ;存放正數(shù)的個數(shù) ARRAY1 DW 20 DUP (?) ;存放正數(shù) COUNT2 DB 0 ;存放負數(shù)的個數(shù) ARRAY2 DW 20 DUP (?) ;存放負數(shù) ZHEN DB 0DH, 0AH, ‘The positive number is:’, ‘$’ ;正數(shù)的個數(shù)是: FU DB 0DH, 0AH, ‘The negative number is:’, ‘$’ ;負數(shù)的個數(shù)是: CRLF DB 0DH, 0AH, ‘$’ DSEG ENDS CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;設(shè)置返回DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;給DS賦值 BEGIN: MOV CX, COUNT LEA BX, ARRAY LEA SI, ARRAY1 LEA DI, ARRAY2 BEGIN1: MOV AX, [BX] CMP AX, 0 ;是負數(shù)碼? JS FUSHU MOV [SI], AX ;是正數(shù),存入正數(shù)數(shù)組 INC COUNT1 ;正數(shù)個數(shù)+1 ADD SI, 2 JMP SHORT NEXT FUSHU: MOV [DI], AX ;是負數(shù),存入負數(shù)數(shù)組 INC COUNT2 ;負數(shù)個數(shù)+1 ADD DI, 2 NEXT: ADD BX, 2 LOOP BEGIN1 LEA DX, ZHEN ;顯示正數(shù)個數(shù) MOV AL, COUNT1 CALL DISPLAY ;調(diào)顯示子程序 LEA DX, FU ;顯示負數(shù)個數(shù) MOV AL, COUNT2 CALL DISPLAY ;調(diào)顯示子程序 RET MAIN ENDP DISPLAY PROC NEAR ;顯示子程序 MOV AH, 9 ;顯示一個字符串的DOS調(diào)用 INT 21H AAM ;將(AL)中的二進制數(shù)轉(zhuǎn)換為二個非壓縮BCD碼 ADD AH, ‘0’ ;變?yōu)?~9的ASCII碼 MOV DL, AH MOV AH, 2 ;顯示一個字符的DOS調(diào)用 INT 21H ADD AL, ‘0’ ;變?yōu)?~9的ASCII碼 MOV DL, AL MOV AH, 2 ;顯示一個字符的DOS調(diào)用 INT 21H LEA DX, CRLF ;顯示回車換行 MOV AH, 9 ;顯示一個字符串的DOS調(diào)用 INT 21H RET DISPLAY ENDP ;顯示子程序結(jié)束 CSEG ENDS ;以上定義代碼段 END START?
總結(jié)
以上是生活随笔為你收集整理的汇编语言——正数数组P和负数数组N的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言——100个数中的最大数
- 下一篇: JavaScript——易班优课YOOC