;統計BUF中正數的個數
;分析:每個元素是壹個8位有符號二進制數,因此要判斷其是否為正數,
;需選擇帶符號數條件轉移指令進行判斷轉移(例如JG,JNG,JL,JNL)。
;由於***有n個元素,因此整個程序的結構就是對以上判斷重復n次.
ASSUME?CS:CODE,?DS:DATA
DATA?SEGMENT
BUF?DB?1,2,3,4,5,6,7,-8,-9,0
N?EQU?$?-?BUF ?;計算BUF中元素的個數
COUNT?DW?
DATA?ENDS
CODE?SEGMENT
START:
MOV?AX,DATA
MOV?DS,AX
LEA?BX,BUF ?;取BUF的偏移地址,然後賦值給BX
MOV?CX,N ;BUF中元素的個數,賦值給CX
MOV?AX,0 ?;AX存放正數的個數
NEXT:CMP?byte?ptr?[BX],0
JNG?LESS0 ;小於或等於0,跳轉
INC?AX
LESS0:
INC?BX ;指向下壹個元素
LOOP?NEXT
MOV?COUNT,AX
MOV?AX,4C00H
INT?21H
CODE?ENDS
END?START
流程圖: