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

📄 3-4.asm

📁 几个汇编小程序。能实现电话号码本的管理
💻 ASM
字号:
data segment
  esc_key equ 1bh
  left_key equ 4bh
  right_key equ 4dh
  contron_key equ 00h
  win1_uc equ 10
  win1_ur equ 5
  win1_lc equ 30
  win1_lr equ 15
  win2_uc equ 50
  win2_ur equ 5
  win2_lc equ 70
  win2_lr equ 15
  win3_uc equ 15
  win3_ur equ 18
  win3_lc equ 65 
  win3_lr equ 22
  dwx1 db 10
  dwx2 db 70
  dwx3 db 15
  trag db 1
  trag1 db 1
data ends

;--------------------------------clear screen-------------------------------------

clear_screen macro uc,ur,lc,lr
  mov ah,6
  mov al,0
  mov bh,50h
  mov ch,ur
  mov cl,uc
  mov dh,lr
  mov dl,lc
  int 10h
endm
  
;-------------------------init cursor------------------------------------

initcursor macro lr,uc
  mov bh,0
  mov ah,2
  mov dh,lr
  mov dl,uc
  int 10h
endm
 
;------------------------scroll macro---------------------------------
scroll macro uc,ur,lc,lr
  mov ah,6
  mov al,1
  mov ch,ur
  mov cl,uc
  mov dh,lr
  mov dl,lc
  mov bh,50h
  int 10h
endm

;---------------------------read char-----------------------------

get_char macro
  mov ah,7
  int 21h
  cmp trag1,0
  jz contron
  cmp al,esc_key
  jz exit1
  cmp al,contron_key
  jz next8
  cmp trag,0
  jz win1_disp
  jmp win2_disp
contron:
  or trag1,1
  cmp al,left_key
  jz left
  cmp al,right_key
  jz right
left:
  and trag,0
  jmp next
right:
  or trag,1
  jmp next
exit1:
  jmp near ptr exit
next8:
  and trag1,0
  jmp near ptr next
endm

;-----------------------------display macro-----------------------------------

display macro uc,ur,lc,lr,dwx,opr,nextt
  mov di,ax
  cmp dwx,lc
  jbe nextt
  scroll uc,ur,lc,lr
  initcursor lr,uc
  mov dwx,uc
nextt:
  mov dh,lr
  mov dl,dwx
  mov bh,0
  mov ah,2
  int 10h
  mov ax,di
  mov dl,al
  mov ah,2
  int 21h
  inc dwx
  jmp opr
endm
;-------------------------------main program------+-------------------------

code segment
  main proc far
  assume cs:code,ds:data
start:
  mov ax,data
  mov ds,ax
  clear_screen win1_uc,win1_ur,win1_lc,win1_lr
  clear_screen win2_uc,win2_ur,win2_lc,win2_lr
  clear_screen win3_uc,win3_ur,win3_lc,win3_lr
  initcursor win2_lr,win2_uc
next:
  get_char
win1_disp:
  display win1_uc,win1_ur,win1_lc,win1_lr,dwx1,win3_disp,nextt1
win2_disp:
  display win2_uc,win2_ur,win2_lc,win2_lr,dwx2,win3_disp,nextt2
win3_disp:
  display win3_uc,win3_ur,win3_lc,win3_lr,dwx3,next,nextt3
exit:
  mov ax,4c00h
  int 21h
main endp
code ends
 end start

⌨️ 快捷键说明

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