论坛: 编程破解 标题: 莱鸟编程日志(第4章20题) 复制本贴地址    
作者: 中联重科 [scandisk]    论坛用户   登录
题目如下:
建立一个通讯录,其中包含姓名(6字节)、电话(13字节)、单位(30字节)、邮编(6字节)字段。用此结构为某单位分配50个人的存储空间,并分别用INT21H中断的0AH和9号功能为每个字段输入数据及显示。

代码如下:

TXL STRUC                ;定义结构TXL
ZNAME DB 6 DUP(0)
TEL DB 13 DUP(0)
ZDW DB 30 DUP(0)
ZYB DB 6 DUP(0)
TXL ENDS

EATA SEGMENT
NO_1 TXL 50 DUP(<>) ;分配50条记录的空间
EATA ENDS


DATA SEGMENT
DISP1 DB '请输入姓名(6):','$'
DISP2 DB '请输入电话(13):','$'
DISP3 DB '请输入单位(30):','$'
DISP4 DB '请输入邮编(6):','$'
ZRECORD DB '记录',30H,31H,'$'
INPUT1 DB 7,?,7 DUP(0)
INPUT2 DB 11,?,11 DUP(0)
INPUT3 DB 31,?,31 DUP(0)
INPUT4 DB 7,?,7 DUP(0)
CRLT DB 0AH,0DH,24H
ZAH DB 00H
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA,ES:EATA

MAIN PROC FAR
    MOV AX,DATA
    MOV DS,AX
    MOV AX,EATA
    MOV ES,AX
   
    MOV CX,50
    LEA BX,NO_1
   
DXH:
    PUSH CX
    MOV AH,9
    LEA DX,CRLT
    INT 21H
    LEA DX,ZRECORD
    INT 21H                  ;显示当前记录号
    MOV AH,ZAH
    MOV AL,ZRECORD+5
    ADD AL,'1'
    AAA
    MOV ZAH,AH
    ADD AH,30H
    ADD AL,30H
    MOV ZRECORD+4,AH
    MOV ZRECORD+5,AL
   

    MOV AH,9
    LEA DX,CRLT          ;输入姓名
    INT 21H
    LEA DX,DISP1
    INT 21H
 
    MOV AH,0AH
    LEA DX,INPUT1
    INT 21H

    MOV CL,INPUT1+1
    XOR CH,CH
    LEA SI,INPUT1+2
    LEA DI,[BX].ZNAME
    REP MOVSB

    MOV AH,9
    LEA DX,CRLT
    INT 21H
    LEA DX,DISP2          ;输入电话
    INT 21H
 
    MOV AH,0AH
    LEA DX,INPUT2
    INT 21H

    MOV CL,INPUT2+1
    XOR CH,CH
    LEA SI,INPUT2+2
    LEA DI,[BX].TEL
    REP MOVSB

    MOV AH,9
    LEA DX,CRLT
    INT 21H
    LEA DX,DISP3          ;输入单位
    INT 21H
 
    MOV AH,0AH
    LEA DX,INPUT3
    INT 21H

    MOV CL,INPUT3+1
    XOR CH,CH
    LEA SI,INPUT3+2
    LEA DI,[BX].ZDW
    REP MOVSB
   
                         
    MOV AH,9                ;输入邮编
    LEA DX,CRLT
    INT 21H
    LEA DX,DISP4
    INT 21H
 
    MOV AH,0AH
    LEA DX,INPUT4
    INT 21H

    MOV CL,INPUT4+1
    XOR CH,CH
    LEA SI,INPUT4+2
    LEA DI,[BX].ZYB
    REP MOVSB 
   
    ADD BX,55              ;BX指向下一条记录的首地址
    POP CX
    CMP CX,1
    JZ EXIT
    DEC CX
JMP DXH

EXIT:
      MOV AH,4CH
      INT 21H

MAIN ENDP
CODE ENDS
    END MAIN


地主 发表时间: 16-06-19 18:04

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号