. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->C/C++语言
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  学汇编时遇到的问题,向高手请教一下  [待解决] 回复[ 1次 ]   点击[ 531次 ]  
kuhai
[帖 主]   [ 发表时间:2010-11-13 23:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-10 23:37
各位高手指点一下,汇编要求是要求键盘输入一个字符串,显示其相应的ASCII码,下面程序总是不对,请帮一下忙 啊!!
        DATA  SEGMENT
         DA1  DB        'put a sring:$'
         BUF  DB        100
              DB        ?
              DB        100 DUP(?)
         DA2  DB        0DH,0AH,'ASCII IS:$'
        DATA  ENDS
      STACK1  SEGMENT   STACK
         STT  DB        100 DUP(?)
      STACK1  ENDS
        CODE  SEGMENT
        MAIN  PROC      FAR
              ASSUME    DS:DATA,CS:CODE,SS:STACK1
      START:  MOV       AX,STACK1
              MOV       SS,AX
              MOV       AX,DATA
              MOV       DS,AX
              MOV       DX,OFFSET DA1
              MOV       AH,09
              INT       21H
              MOV       SI,OFFSET BUF
              MOV       DX,OFFSET BUF
              MOV       AH,0AH
              INT       21H
              INC       SI
              MOV       CX,WORD PTR [SI]
              PUSH      CX
              INC       SI

        AGN:  MOV       BL,[SI]
              MOV       DL,[SI]
              MOV       CL,4
              SHR       DL,CL
              ADD       DL,30H
              MOV       AH,2
              INT       21H
              AND       BL,0FH
              ADD       BL,30H
              CMP       BL,41H
              JL        SHORE
              ADD       BL,7
      SHORE:  MOV       DX,OFFSET DA2
              MOV       AH,09
              INT       21H
              MOV       DL,BL
              MOV       AH,2
              INT       21H
              INC       SI
              POP       CX
              LOOP      AGN
              MOV       AH,4CH
              INT       21H
        MAIN  ENDP
        CODE  ENDS
              END       START
kuhai
[第1楼]   [ 回复时间:2010-11-14 22:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-10 23:37
进过仔细琢磨 应该是:        DATA  SEGMENT
         DA1  DB        'put a sring:$'
         BUF  DB        100
              DB        ?
              DB        100 DUP(?)
         DA2  DB        0DH,0AH,'ASCII IS:$'
        DATA  ENDS
      STACK1  SEGMENT   STACK
         STT  DB        100 DUP(?)
      STACK1  ENDS
        CODE  SEGMENT
        MAIN  PROC      FAR
              ASSUME    DS:DATA,CS:CODE,SS:STACK1
      START:  MOV       AX,STACK1
              MOV       SS,AX
              MOV       AX,DATA
              MOV       DS,AX
              MOV       DX,OFFSET DA1
              MOV       AH,09
              INT       21H
              MOV       SI,OFFSET BUF
              MOV       DX,OFFSET BUF
              MOV       AH,0AH
              INT       21H
              INC       SI
              MOV       CL, [SI]
              MOV       CH,0
              ;PUSH      CX
              INC       SI
        AGN:
              MOV       DX,OFFSET DA2
              MOV       AH,09
              INT       21H
              MOV       BL,[SI]
              MOV       DL,[SI]
              SHR       DL,1
              SHR       DL,1
              SHR       DL,1
              SHR       DL,1
              ADD       DL,30H
              MOV       AH,2
              INT       21H
              AND       BL,0FH
              ADD       BL,30H
              CMP       BL,39H
              JL        SHORE
              ADD       BL,7
      SHORE:
              MOV       DL,BL
              MOV       AH,2
              INT       21H
              INC       SI
            ;pop cx
              LOOP      AGN
              MOV       AX,4C00H
              INT       21H
        MAIN  ENDP
        CODE  ENDS
              END       START
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved