+ -
当前位置:首页 → 问答吧 → 大哥们给我看看我的汇编程序把~~~字符串问题

大哥们给我看看我的汇编程序把~~~字符串问题

时间:2010-12-30

来源:互联网

DATA1 SEGMENT
  SHUJU DB 'ABCDEFG'
DATA1 ENDS
CODE SEGMENT
  ASSUME CS:CODE,DS:DATA1
 START:MOV AX,DATA1
  MOV DS,AX
  MOV SI,0
  LOP:MOV BL,0
  CMP DS:[SI],BL
  JE LOP2
  INC SI
  LOOP LOP
  LOP2:MOV BL,'$'
  MOV DS:[SHUJU+SI],BL
  MOV DX,OFFSET SHUJU
  MOV AH,9
  INT 21
  MOV AH,4CH
  INT 21
  CODE ENDS
  END START
  
 我想写一个程序 把原来存在data1里面的字符串在显示器上输出,这个我实现了在字符串末尾加上$了,怎么输出不了字符串呢????
 

作者: showlovelpp   发布时间: 2010-12-30

修改部分见小写字母
Assembly code

DATA1 SEGMENT
  SHUJU DB 'ABCDEFG'
DATA1 ENDS
CODE SEGMENT
  ASSUME CS:CODE,DS:DATA1
 START:
  MOV AX,DATA1
  MOV DS,AX
  mov bx,offset shuju
s:
  mov al,[bx]
  cmp al,0
  jz s1
  inc bx
  jmp s
s1:
  mov byte ptr [bx],24h
  MOV DX,OFFSET SHUJU
  MOV AH,9
  INT 21h
  MOV AH,4CH
  INT 21h
  CODE ENDS
  END START

作者: masmaster   发布时间: 2010-12-30

1、 int 21是21h
2、 最好把 shuju db ‘ABCDEFG' 改为
shuju db ‘ABCDEFG',0
因为你后面要寻找0把它改'$',尽管后面可能有内存单元的原始内容为0,但还是自己加上保险。

作者: shzhfu   发布时间: 2010-12-31