⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 add.asm

📁 本程序是汇编语言的一些基本功能的组合
💻 ASM
字号:

CODE SEGMENT
MAIN PROC FAR   ;段定义伪操作
 ASSUME CS:CODE 
START:
 PUSH DS     ;将原有数据段入栈保存
 SUB AX,AX   ;将累加器?
 PUSH AX     ;保存到栈中
;------------------

 CALL DECIBIN ;子程序调用,十进制转换为二进制子程序
 PUSH BX      ;将原有基址寄存器的内容保存
 CALL DECIBIN
 POP AX
 ADD BX,AX 
 CALL BINIDEC ;子程序调用,二进制转换为十进制子程序

;------------------
 
 RET
MAIN ENDP
;--------------------

DECIBIN   PROC   NEAR ;段内调用
      MOV BX,0        ;BX置零 
NEWCHAR:
      MOV AH,1        ;累加器赋初值
      INT 21H         ;中断,标志寄存器.代码段.指针的内容进栈保存。重置IF TF AC IP CS  
      SUB AL,30H      ;累加器
     CMP AL,0         
     JB  EXIT1        ;与零比较是否会小于零
     CMP AL,9
     JNBE  EXIT1      ;与九比较是否会大于九
    CBW  ;AL扩展到AH
  XCHG AX,BX          ;交换
  MOV CX,10D          ;计数器置十
  MUL CX              ;与当前计数器相乘
  XCHG AX,BX          ;交换内容
  ADD  BX,AX
  JMP  NEWCHAR
EXIT1:
  RET
DECIBIN   ENDP
;----------------
BINIDEC   PROC   NEAR
     PUSH  BX
     PUSH  CX
     PUSH  SI
     PUSH  DI
     MOV   DI,0
     MOV   CX,10000D
     CALL  DEC_DIV
     MOV   CX,1000D
     CALL  DEC_DIV
     MOV   CX,100D
     CALL  DEC_DIV
     MOV   CX,10D 
     CALL  DEC_DIV
     MOV   CX,1
     CALL  DEC_DIV
     POP   DI
     POP   SI
     POP   CX
     POP   BX
     RET
BINIDEC   ENDP
;---------------------
DEC_DIV   PROC   NEAR  ;把BX中的一个二进制数除以相应的十的幂,并且在屏幕上显示一位商,余数保存在BX寄存器中
     MOV  AX,BX
     MOV  DX,0
     DIV  CX
     MOV  BX,DX
     MOV  DL,AL
     ADD  DL,30H
     MOV  AH,2
     INT  21H
    RET
DEC_DIV   ENDP
;---------------------
CRLF   PROC   NEAR     ;回车换行子程序
     MOV  DL, 0DH
     MOV  AH, 2
     INT 21H
     MOV  DL, 0AH
     INT  21H
     RET
CRLF   ENDP
;---------------------
CODE ENDS
 END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -