用組合語言實現從1加到100(1+2+...+100)

來源:互聯網
上載者:User

標籤:des   斷行符號換行   轉換   img   style   清零   ref   ascii碼   斷行符號   

用組合語言實現1+2+...+100

;課堂作業;計算1+2+...+100DATA SEGMENT  COUNT DW 0    ;計數DATA ENDS   STACK SEGMENT PARA  STACK  BUF DW 20H DUP (0)  LEN EQU $-BUFSTACK ENDSCODESEG SEGMENTASSUME CS:CODESEG,SS:STACK,DS:DATASTART:;初始化堆棧段ss和資料區段ds  MOV AX,STACK  MOV SS,AX  MOV SP,LEN  MOV AX,DATA  MOV DS,AX    MOV CX,64H ;迴圈100次  MOV AX,0S:    ADD COUNT,01H    ADD AX,COUNT    LOOP S        MOV DL,AL    MOV AL,AH    CALL DISP_2_HEX    MOV AL,DL    CALL DISP_2_HEX    CALL DISP_CREF    MOV AH,4CH    INT 21H  ;將AL的高四位與低四位分別輸出DISP_2_HEX:  PUSH AX  PUSH BX  PUSHF  MOV  AH,0 ;清零  MOV  BL,10H ;作除法  DIV  BL  ;AL :商 高位  AH 餘數 低位  CALL DISP_1_HEX ;輸出AL的結果  MOV  AL,AH  CALL DISP_1_HEX  POPF  POP BX  POP AXRET;輸出AL的數字和字母DISP_1_HEX:    PUSH AX  PUSH DX  PUSHF  MOV DL,AL  CMP DL,09  JBE L_1  ;小於等於9則跳過下一條語句  ADD DL,27H ;大於10則轉換為小寫字母並執行到下面的L_1的RET結束                ;數字10與字元a差為39(27H);數字輸出(1的ascii碼為31H)L_1:    ADD DL,30H ;數字轉換為字元  MOV AH,02H  INT 21H  POPF  POP DX  POP AX RET;輸出斷行符號換行DISP_CREF:  PUSH DX PUSH AX MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H POP AX POP DXRETCODESEG ENDSEND START

 

輸出結果為13ba(5050的十六進位)

 

用組合語言實現從1加到100(1+2+...+100)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.