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

📄 asc.asm

📁 本人的汇编上机的简单的小程序
💻 ASM
字号:
data segment
      first db "  0 1 2 3 4 5 6 7 8 9 A B C D E F $"
      col dw 17
      row dw 9
      asc dw ?
data ends
stack1 segment para stack
      dw 20h dup(0)
stack1 ends
code segment
      assume cs:code,ds:data,ss:stack1
start:
      mov ax,data
      mov ds,ax
      mov bh,0                    ; bh存放行号
      mov cx,row
lop1: push cx
      mov bl,0                    ; bl存放列号
      mov cx,col
lop2: mov al,bh                   ; 计算ASC码
      dec al
      push cx
      mov cl,4
      shl al,cl
      pop cx
      mov ah,bl
      dec ah
      add al,ah
      cmp bh,0                    ; 第1行为列编号
      je rw
      cmp bl,0                    ; 第1列为行编号
      je co
      inc bl                      ; 列计数
      cmp al,20h                  ; 特殊字符以空格代替
      jbe spa
      cmp al,7fh                  ; 最后DEL以空格代替
      je spa
      
      mov dl,al                   ;输出字符asc码
      mov ah,02h
      int 21h
      mov dl,20h
      mov ah,02h
      int 21h
      jmp fin

rw:   mov dx, offset first        ; 输出列号
      mov ah,09h
      int 21h
      jmp fin2
      
co:   mov al,bh                  ; 输出行号
      dec al
      add al,30h
      mov dl,al
      mov ah,02h
      int 21h
      mov dl,20h
      mov ah,02h
      int 21h
      inc bl                      ; 列计数
      jmp fin
      
spa:  mov dl,20h                  ; 输出空格
      mov ah,02h
      int 21h
      mov dl,20h
      mov ah,02h
      int 21h
fin:  loop lop2
fin2: pop cx
      inc bh                      ; 行计数
      
      mov dl, 0dh                 ; 换行
      mov ah,02h
      int 21h
      mov dl, 0ah
      mov ah,02h
      int 21h
      loop lop1
      mov ah,4ch
      int 21h
code  ends
      end start
      

⌨️ 快捷键说明

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