日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

已知有几个数据存放在BUF为首址的字节存储区中,试统计其中正数的个数,并将结果存入ZNUM单元中。

發布時間:2023/12/1 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 已知有几个数据存放在BUF为首址的字节存储区中,试统计其中正数的个数,并将结果存入ZNUM单元中。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

已知有幾個數據存放在BUF為首址的字節存儲區中,試統計其中正數的個數,并將結果存入ZNUM單元中。

P160
例4.17

匯編思路:DATA段,定義BUF存儲區,定義一下DB類型的數據,N為定義數據的總個數,ZNUM用于存放最后的正數個數。STACK段,開辟一段大小為100DB的堆棧段的存儲空間,用于進行運算。CODE段,首先讓BX獲取到BUF的有效地址,CX獲取到N的值,用于循環,對AX清零,目的用于記錄正數個數,然后,將BX的內容以次與0相比較,若結果為>=0(通過JLE判斷),AX自加,否則BX自加,如果通過LOOP跳回到上一步再次進行下一個數據的判斷,直到最后CX的值為0結束,然后再將AX統計到的正數的個數賦值給ZNUM,然后調用4CH號功能,返回DOS系統,程序結束。

代碼如下:

DATA SEGMENT BUF DB 3,5,2,7,0,-1,-7,9,-4,8;隨機的幾個存放在BUF為首址的一些數據 N EQU $-BUF ;N表示數據的總個數 ZNUM DW ? ;ZNUM用于存放最后的統計個數 DATA ENDS STACK SEGMENT STACKDB 100 DUP(?);在堆棧段開辟了一段100DB大小的用于運算的存儲空間 STACK ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATAMOV DS,AX LEA BX,BUF ;去有效地址指令LEA,將BUF的地址賦值給BXMOV CX,N ;CX存放數據的總個數,用于循環使用XOR AX,AX ;AX清零,用于存放正數的個數 L1: CMP BYTE PTR[BX],0;存儲器操作數需要使用修改屬性運算符PTR來指定位于其后的存儲器操作數的類型為BYTE類型,判斷數據是否為0JLE L2 ;JLE小于或等于轉移,即若上條指令結果<=0,跳轉到L2標簽處,否則執行下一條指令 即>0執行下一條指令,<=0跳轉到L2標簽處INC AX ;若執行到此條指令,表示數據為正數,AX自加 L2: INC BX ;BX+1,即操作進行判斷下一個數據LOOP L1 ;無條件跳轉到L1標簽處,CX-1,再次跳轉到L1標簽處時,由于BX已經+1,此時再判斷的就是下一個數據了,直到CX的值為0,即所有數據已經都判斷完畢之后結束循環MOV ZNUM,AX ;將AX用于存放整數的個數賦值給ZNUMMOV AH,4CH ;調用4CH號功能,返回DOS操作系統INT 21H ;終止當前程序的運行,并返回DOS系統 CODE ENDSEND START

總結

以上是生活随笔為你收集整理的已知有几个数据存放在BUF为首址的字节存储区中,试统计其中正数的个数,并将结果存入ZNUM单元中。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。