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

📄 610.asm

📁 汇编语言的简单的输入字母的大小写转换的小汇编语言程序
💻 ASM
字号:


DSEG SEGMENT
   VAL1 DW 000FH
DSEG ENDS
CSEG SEGMENT
BANDO PROC FAR
   ASSUME CS:CSEG,DS:DSEG
START:PUSH DS
      SUB AX,AX
      PUSH AX
      MOV AX,DSEG
      MOV DS,AX
      PUSH VAL1         ;将val1压栈
      CALL PAIRS        ;调用PAIRS

      RET
BANDO ENDP
PAIRS PROC NEAR
      PUSH BP        
      MOV BP,SP
      PUSH BX
      MOV BX,[BP+4]     ;(BX)=VAL1 
      CALL OUTBIN       ;调用子程序OUTBIN
      MOV CX,8          ;输出8个空格
SPACE:MOV DL,' '
      MOV AH,2
      INT 21H
      LOOP SPACE
      CALL OUTOCT       ;调用子程序OUTOCT
      CALL CRLF         ;调用CRLF
      POP BX
      POP BP
      RET 2
PAIRS ENDP
OUTBIN PROC NEAR
      PUSH BX           
      MOV CX,16             
ONEBIT:ROL BX,1          
      MOV DX,BX
      AND DX,1          ;从第15位开始逐个取得VAL1的二进制位
      OR DX,30H         ;将二进制位变成ASCII
      MOV AH,2
      INT 21H           ;并输出
      LOOP ONEBIT       ;循环16次
      POP BX
      RET
OUTBIN ENDP
OUTOCT PROC NEAR
      MOV CX,5          ;
      ROL BX,1
      MOV DX,BX
      AND DX,01
      OR DX,30H
      MOV AH,2
      INT 21H
NEXT: PUSH CX
      MOV CL,3
      ROL BX,CL
      MOV DX,BX
      AND DX,7
      OR DX,30H
      MOV AH,2
      INT 21H
      POP CX
      LOOP NEXT
      RET
OUTOCT ENDP
CRLF PROC NEAR
      MOV AH,2
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      RET
CRLF ENDP
CSEG ENDS
   END START

⌨️ 快捷键说明

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