首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

汇编通讯录程序的软件架构组成,各部分的核心技术及其具体怎么实现啥呢

2012-02-28 
汇编通讯录程序的软件架构组成,各部分的核心技术及其具体如何实现啥呢STACKSEGMENTPARA STACK stackDW 2

汇编通讯录程序的软件架构组成,各部分的核心技术及其具体如何实现啥呢
STACK SEGMENT PARA STACK 'stack'
  DW 20H DUP(?)
STACK ENDS
DATA SEGMENT
TITL DB '汇编通讯录程序'
LENG EQU $-TITL
NAM DB ' * * * * * * ',0DH,0AH
  DB ' * 通 讯 录 * ',0DH,0AH
  DB ' * * * * * * ',0DH,0AH,'$'
SELECT DB ' ┏━━━━━━━━━━━┓ ',0DH,0AH
  DB ' ┃ 1.添加新记录并回显 ┃ ',0DH,0AH
  DB ' ┃ 2.查看所有记录 ┃ ',0DH,0AH
  DB ' ┃ 3.查寻检索某一记录 ┃ ',0DH,0AH
  DB ' ┃ 4.修改记录 ┃ ',0DH,0AH
  DB ' ┃ 5.删除记录 ┃ ',0DH,0AH
  DB ' ┃ 6.退出 ┃ ',0DH,0AH
  DB ' ┗━━━━━━━━━━━┛ ',0DH,0AH,'$'
SEL DB ' 请选择(1,2,3,4,5,6):','$'
RGST STRUC
NA DB 18,?,18 DUP(20H)
TEL DB 18,?,18 DUP(20H)
ADDR DB 20,?,20 DUP(20H)
PS DB 0DH,0AH,'$'
RGST ENDS
PRNA DB '请输入姓名:$'
PRTEL DB '请输入电话号码:$'
PRADDR DB '请输入家庭住址:$'
PROMPT DB '**********************************************************',0DH,0AH
  DB ' 姓名 电话号码 家庭住址 ',0DH,0AH
  DB '**********************************************************',0DH,0AH,'$'  
Q RGST <> ;用于恢复D
D RGST 10H DUP(<>)
S RGST <> ;数据缓冲区
T DB 18,?,18 DUP(20H) ;存放检索人名
PATH DB 'yf.DAT',0 ;文件路径
SELF DB ' 错误!请在规定范围内选择.',0DH,0AH,'$'
WRITEF DB '写文件错误!',0DH,0AH,'$'
OPENF DB '打开文件错误!',0DH,0AH,'$' ; 错误提示
READF DB '读文件错误!',0DH,0AH,'$' 
CLSETF DB '关闭文件错误!',0DH,0AH,'$'
HNF DW ? ; 文件代号
CNT DB 0
FANHUI DB 0
SEARC1 DB ' ┏━━━━━━━━━┓ ',0DH,0AH
  DB ' ┃1.按姓名查询 ┃ ',0DH,0AH
  DB ' ┃2.按电话号码查询 ┃ ',0DH,0AH
  DB ' ┃3.按家庭住址查询 ┃ ',0DH,0AH
  DB ' ┃4.返回主菜单 ┃ ',0DH,0AH
  DB ' ┗━━━━━━━━━┛ ',0DH,0AH
  DB ' 请选择查询方式:$'
SEARCF DB ' 错误!请重新选择查询方式:$'
SEARCH1 DB '请输入要查询的人名:$'
SEARCH2 DB '请输入要查询的电话号码:$'
SEARCH3 DB '请输入要查询的住址:$'
FAI DB '* *对不起!没有找到!* *',0DH,0AH,'$'
SEA DB '* * O K ! !已经找到! * *',0DH,0AH,'$'  
LINE DB '**********************************************************',0DH,0AH,'$'
LINE1 DB '----------------------',0DH,0AH,'$'
ROW DB 0
OVER DB '显示一屏完毕,按任意键继续..................$'
NOTIC DB '★★THAT IS ALL! !全部显示完毕★★ 按任意健返回主菜单...........$'
NOTI DB '&& OK!! 添加完毕! !按任意键返回主菜单................$'
NOTI1 DB '按任意键返回主菜单! !.......................$'
NOTI2 DB '&& 查询完毕! !按任意键返回主菜单.....................$'
NOTI4 DB '&& 修改完毕! !按任意键返回主菜单.....................$'
NOTI5 DB '&& 删除完毕! !按任意键返回主菜单.....................$'
CHAN1 DB '! ! 确实要修改该记录 ? ? (Y && N ):$'
DEL1 DB '! ! 确实要删除该记录 ? ? (Y && N ):$'
TTT DB '★★汇编语言毕业计★★ ',0DH,0AH
LEN EQU $-TTT
TTT1 DB '指导老师',0DH,0AH
LEN1 EQU $-TTT1
TTT2 DB '学生:',0AH,0DH
LEN2 EQU $-TTT2
TTT3 DB ' 计算机',0DH,0AH
LEN3 EQU $-TTT3
TTT4 DB ' 按 < Enter >键进入,按 < Esc >键退出 ',0DH,0AH


LEN4 EQU $-TTT4
TTT5 DB ' 说明:本程序参考了一些汇编',0DH,0AH
  DB ' 二零一零年四月 ',0DH,0AH,'$'
DATA ENDS

CURS MACRO A,B,C ;宏
  MOV AH,2
  MOV DH,A
  MOV DL,B
  MOV BH,0
  INT 10H
  LEA DX,C
  CALL PRINT
  ENDM
WIND MACRO X,Y,Z,U,V,W
  MOV AH,6
  MOV AL,X
  MOV CH,Y
  MOV CL,Z
  MOV DH,U
  MOV DL,V
  MOV BH,W
  INT 10H
  ENDM
PRI MACRO X,Y,Z,U
  MOV BP,OFFSET X
  MOV CX,Y
  MOV DX,Z
  MOV BL,U
  MOV AL,1
  MOV AH,13H
  INT 10H
  ENDM
SHIFT MACRO A,B ;文件指针
  MOV BX,HNF
  MOV DX,A  
  MOV CX,B
  MOV AX,4201H
  INT 21H
  ENDM
BIJIAO MACRO X
  LOCAL CIC,SUC,FAIL,RETU
CIC: CALL READFILE
  CMP AX,0
  JZ FAIL
  LEA SI,X
  ADD SI,2
  LEA DI,T
  ADD DI,2
  MOV CX,18
  CLD
  REPZ CMPSB
  CMP CX,0
  JZ SUC
  JMP CIC
SUC: CALL SUCC
  JMP RETU
FAIL: CALL LSPACE
  LEA DX,FAI
  CALL PRINT
  MOV CNT,1
RETU: CALL CLEAN
  ENDM

CODE SEGMENT
  ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
START: MOV AX,DATA
  MOV DS,AX
  MOV ES,AX
  MOV AL,3
  MOV AH,0
  INT 10H ;彩色文本
  CALL SKIN1
  CALL SKIN ;界面
NEXT1: CMP AL,'1'
  JZ LP1
  CMP AL,'2'
  JZ LP2
  CMP AL,'3' ;分几种情况处理
  JZ LP3
  CMP AL,'4'
  JZ LP4
  CMP AL,'5'
  JZ LP5
  CMP AL,'6'
  JZ EXIT

  LEA DX,SELF
  CALL PRINT
  LEA DX,SEL
  CALL PRINT
  MOV AH,1
  INT 21H
  JMP NEXT1
LP1: CALL LSPACE
  CALL OPENFILE
  CALL DONE
  CALL SKIN
  JMP NEXT1
LP2: CALL CLS ;显示所有记录
  LEA DX,PROMPT
  CALL PRINT
  CALL OPENFILE
  CALL PRINT1
  JMP NEXT1
LP3: CALL OPENFILE
  CALL SEAFILE
  CALL CLSET
  MOV CNT,0 ;没找到 标记
  CMP FANHUI,0 ;直接返回标记
  JNZ EXIT6
  CALL LSPACE
  LEA DX,NOTI2
  CALL PRINT
  MOV AH,7
  INT 21H
EXIT6: MOV FANHUI,0
  CALL SKIN
  JMP NEXT1

LP4: CALL CHAN
  MOV FANHUI,0
  CALL SKIN
  JMP NEXT1
LP5: CALL DEL
  MOV FANHUI,0


  CALL SKIN
  JMP NEXT1
EXIT: MOV AH,4CH
  INT 21H ;主程序结束



[解决办法]
还是没,哎

热点排行