1. 程式人生 > >微機實驗報告5 迴圈程式設計實驗

微機實驗報告5 迴圈程式設計實驗

     

班級  軟體工程16-1  學號  3162052051116  姓名  張識虔  同組實驗者              

實驗名稱             迴圈程式設計實驗                       

日期 2018 11 16

一、實驗目的:

掌握迴圈程式的設計方法。

二、實驗環境:

PC 微機一臺。

三、實驗內容:

        

              本實驗要求通過求某資料區內負數的個數來表現迴圈程式的結構形式。要求 實驗程式在資料區中存放一組資料,為統計負數的個數,逐個判斷區內的資料, 然後將所有資料中凡是符號位為 1 的資料的個數累加起來,即得到區內所包含負

數的個數。迴圈程式的結構示意如圖 2-5-1 所示。請畫出程式流程圖,根據流程 圖編寫實驗程式。

2-5-1 迴圈結構示意圖

 

實驗程式清單

STACK1 SEGMENT STACK 

       DW 256 DUP(?)    

STACK1 ENDS 

DATA SEGMENT 

       NUMB DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H

       MES1 DB 'The number of negative is:$' 

DATA ENDS 

CODE SEGMENT 

       ASSUME CS:CODE, DS:DATA 

START: MOV AX,DATA

       MOV DS,AX

       MOV DI,OFFSET NUMB

       XOR BH,BH

       MOV CX,10D

          A1: MOV AL,[DI]

       TEST AL,80H

       JE A2

       INC BL

          A2: INC DI

       LOOP A1

       MOV DX,OFFSET MES1

       MOV AH,09H

       INT 21H

       MOV AL,BL

       AND AL,0F0H

       MOV CL,4

       SHR AL,CL

       CMP AL,0AH

       JB C2

       ADD AL,07H

          C2: ADD AL,30H

       MOV DL,AL

       MOV AH,02H

       INT 21H

       MOV AL,BL

       AND AL,0FH

       CMP AL,0AH

       JB C3

       ADD AL,07H

          C3: ADD AL,30H

       MOV DL,AL

       MOV AH,02H

       INT 21H

     WAIT1: MOV AH,1

       INT 16H

       JZ WAIT1

       MOV AX,4C00H

       INT 21H    

     CODE ENDS

       END START

2.5.4 實驗步驟

(1) 根據實驗要求編寫程式。在資料段宣告 10 個數據:12H88H82H 89H33H90H01H10H0BDH01H

(2) 對實驗程式進行編譯、連結。

(3) 執行程式並觀察執行結果。

資料  

(4) 更改資料區中的資料,反覆測試,驗證程式功能。

修改資料後

 

 

再修改一次  

 

四、心得體會:

 

剛開始還不明白

NUMB DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H   這一串資料的意思 並且也分不清正負值   後來才直到  大於等於80H 就是負數    因為80H轉換成 2進位制就是  1000 0000  轉換成補碼 最高為為1 就是負數