找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2440|回復(fù): 0
收起左側(cè)

單片機(jī)匯編語言程序設(shè)計例程 將存儲字單元Result的本人學(xué)號

[復(fù)制鏈接]
ID:939472 發(fā)表于 2021-6-17 18:54 | 顯示全部樓層 |閱讀模式
將存儲字單元Result的本人學(xué)號(例如:19年級4班學(xué)號30即為:19430數(shù)字),以不同進(jìn)制的方式顯示在屏幕上。設(shè)計顯示菜單,通過菜單選擇1 HEX進(jìn)制、2 DEC 十進(jìn)制、3 BIN二進(jìn)制,4返回。

DATAS SEGMENT
Result DW 19418D  ;=4BDAH=100 1011 1101 1010B
BUFF DW 10000,1000,100,10,1 ;中間變量
Menu DB'     Menu-Display Format Select(1-4):',0DH,0AH
         DB'  1HEX-Hexadecimal',0DH,0AH  ;4BDAH
         DB'  2DEC-Decimal',0DH,0AH   ;19418
         DB'  3BIN-Binary',0DH,0AH  ;100 1011 1101 1010B
         DB'  4ESC-Exit!',0DH,0AH,'$'
IN_Err DB 0DH,0AH,'*****INPUT ERROR!*****',0DH,0AH,'$'
LF   DB 0DH,0AH,'$'
DATAS ENDS
CSEG SEGMENT
         ASSUME CS:CSEG,DS:DATAS
         
START:
         MOV AX,DATAS
         MOV DS,AX
         LEA DX,Menu
         MOV AH,09H
         INT 21H
         
MAIN:
         MOV AH,01H
         INT 21H
         CALL CRLF
         CMP AL,31H
         JE NEXT1
         CMP AL,32H
         JE NEXT2
          CMP AL,33H
         JE NEXT3
         CMP AL,34H
         JE NEXT4
         JMP NEXT5
         
NEXT1:
          LEA SI,Result
          MOV BX,[SI]
          CALL HEX
          CALL CRLF
          JMP MAIN
NEXT2:
          MOV CX,5
          MOV AX,Result
          MOV SI,OFFSET BUFF
NEXT: XOR DX,DX
          DIV WORD PTR[SI]
      PUSH DX
          OR AL,30H
          MOV DL,AL
          MOV AH,02H
          INT 21H
          INC SI
          INC SI
          POP AX
          LOOP NEXT
          CALL CRLF
          JMP MAIN
         
NEXT3:
      LEA SI,Result
          MOV AX,[SI]
          CALL BIN
          CALL CRLF
          JMP MAIN
         
NEXT4:
      CALL EX
          JMP MAIN
         
NEXT5:
      CALL INTERROR
          JMP MAIN
      
BIN proc  near
        PUSH BX
        PUSH CX
        PUSH DX
        MOV BX,AX
        MOV CX,16
S:  MOV DX,30H
        SHL BX,1
        ADC DX,0
        MOV AH,2
        INT 21H
        LOOP S
        POP DX
        POP CX
        POP BX
        RET
BIN endp
HEX proc near
        MOV CH,04D
  ROTATE:
    MOV CL,04D
    ROL BX,CL        
    MOV AL,BL
    AND AL,0FH     
    ADD AL,30H     
    CMP AL,'9'
    JBE  PRINTF      
    ADD AL,07H   
   
  PRINTF:
    MOV DL,AL     
    MOV AH,2
    INT 21H
    DEC CH
    JNE ROTATE  
    RET
HEX endp
         
INTERROR proc near
          LEA DX,IN_Err
          MOV AH,09H
          INT 21H
          RET
INTERROR endp
CRLF proc near
         LEA DX,LF
         MOV AH,09H
         INT 21H
         RET
CRLF endp
EX proc near
         MOV AH,4CH
         INT 21H
         RET
EX endp
CSEG ENDS
      END START
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表