【问题标题】:Error in string reversal code字符串反转代码中的错误
【发布时间】:2016-11-20 17:53:59
【问题描述】:

这段代码有什么问题?我期待这个程序反转字符串并显示它。

;String reverse (Problem is it is displaying any output)
.model small
.stack 100h
.data
    text1 db 'HELLO WORLD $'
    text2 db  13 dup(?)
    count dw   13
.code
  main proc
    mov ax, @data
    mov ds,ax
    mov es,ax
    mov cx,count
    mov si,0
    mov di,0
    add di,count
    dec di

again:  mov al,text1[si]
    mov text2[di],al
    inc si
    dec di
    loop again

    lea dx,text2
    mov ah,9
    int 21h

    mov ah,4ch
    int 21h
  main endp
end main

【问题讨论】:

    标签: assembly x86 dos masm


    【解决方案1】:

    当反转(并希望显示结果!)时,您不应允许将原始 $ 字符移动到结果的开头。

    count 设置为 12 而不是 13 应该可以解决问题,前提是您更改了 text2 的定义:

    text2 db  12 dup(?), "$"
    

    【讨论】:

      猜你喜欢
      • 2012-04-30
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多