| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 704 人关注过本帖
标题:请问这个改成XLAT指令后怎么就出错了呢,高手帮忙
只看楼主 加入收藏
flyfx1989
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2010-12-1
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:2 
请问这个改成XLAT指令后怎么就出错了呢,高手帮忙
就是输入数字,显示其缩写英文
DATA SEGMENT
    D1  DB 20
        DB ?
        DB 2 DUP(?)
    EMON DB 'JAN' ,'FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'
    CHAR DB 3 DUP(?),0DH,0AH,'$'
    D2 DB 'INPUT MONTH',0DH,0AH,'$'
    D3 DB ?
    ERRMSG db 'INPUT ERROR!',0DH,0AH,'$'
    DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA

MAIN PROC FAR
START:
    MOV AX,DATA
    MOV DS,AX
    MOV ES,AX

    CALL INPUT
    CALL LOCATE
    CALL DISPLAY
    ;JMP START
EXIT:MOV AH,4CH
     INT 21H
     RET
MAIN ENDP

INPUT PROC NEAR
    LEA DX,D2
    MOV AH,9
    INT 21H
    LEA DX,D1
    MOV AH,0AH
    INT 21H
    MOV AL,D1+2
    SUB AL,'0'
    CMP AL,9
    JA IPEXIT  
    CMP AL,0
    JB IPEXIT
   
    MOV AL,D1+1
    CMP AL,2
    JA  ERR
    JB  SINGLE1
     MOV AL,D1+2
     SUB AL,'0'
     CMP AL,1
     JA ERR
     JB SINGLE2
     MOV BL,10
     MUL BL
     MOV AH,D1+3
     SUB AH,'0'   
     CMP AH,2
     JA ERR
     ADD AL,AH   
     MOV D3,AL
     RET

SINGLE1: MOV AL,D1+2
        SUB AL,'0'
        MOV D3,AL   
        RET
SINGLE2:
         MOV AH,D1+3
         SUB AH,'0'            
         ADD AL,AH   
         MOV D3,AL
         RET

         
ERR:
    LEA DX,ERRMSG
    MOV AH,9
    INT 21H

IPEXIT:MOV AH ,4CH
       INT 21H
INPUT ENDP

LOCATE PROC NEAR
    MOV AL,D3
    DEC AL
    MOV BL,3
    MUL BL
    MOV SI,0
    MOV BX,OFFSET EMON
    MOV AH,0
    ADD BX,AX
    MOV cx,3
mov al,0
mov si,0
lop:
    xlat
    mov char[si],al
    inc al
    inc si
loop lop   
   

    RET
LOCATE ENDP

DISPLAY PROC NEAR
    LEA DX,char
    MOV AH,9
    INT 21H
    RET
DISPLAY ENDP
CODE ENDS
     END START
搜索更多相关主题的帖子: XLAT 指令 
2010-12-22 16:53
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:20 
程序代码:
lop:
    xlat
    mov char[si],al
    inc al
    inc si
loop lop   
把原来的修改为->
lop:
    push ax
    xlat
    mov char[si],al
    pop ax
    inc al
    inc si
loop lop   

技术问题,请不要以短消息方式提问
2010-12-22 19:40
flyfx1989
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2010-12-1
收藏
得分:0 
回复 2楼 zaixuexi
太好了,非常感谢,这种知识我看书的时候并不是很了解,看来还得多练习
2010-12-22 19:56
快速回复:请问这个改成XLAT指令后怎么就出错了呢,高手帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022240 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved