用汇编语言写,输入一段字母与数字的组合,如3498syhdt123,然后只输出数字3498123要怎么写,急求谢谢!

2025-03-10 05:13:55
推荐回答(1个)
回答1:

dseg segment
  s1 db 50 ; max length
     db 0  ; real input string's length
  s2 db 50 dup(0) ;

  msg1 db 'Input string:$'
  msg2 db 0dh,0ah,'Result:$'
dseg ends

cseg segment
assume cs:cseg, ds:dseg
start:
  mov ax, dseg
  mov ds, ax

  lea dx, msg1
  mov ah,9
  int 21h

  mov ah,0Ah
  lea dx,s1
  int 21h

  mov ah, 9
  lea dx, msg2
  int 21h

  mov ch, 0
  mov cl, s1+1 ;real input string's length

  mov ah,0eh
  mov si, 0
$0:
  mov al, s2+si
  cmp al,'0'
  jb $1
  cmp al,'9'
  ja $1

  int 10h ;print digital
$1:
  inc si
  loop $0

  mov ah,4ch
  int 21h
cseg ends
end start