assembly - How to remove return key when printing -


i trying users name , display greeting, how can remove return key displays greeting on next line?

output this:

hello! name how you? 

i need be:

hello! name how you? 

.

    lea dx, [ansname] ;get name     mov ah, 0ah      int 21h      mov byte [ansname], 19h ; initialize name 25 chars max      call clrscr      lea dx, [greet]     mov ah, 09h     int 21h      lea dx, [ansname+2]     mov ah, 09h     int 21h      lea dx, [greet2]     mov ah, 09h     int 21h      section .data     nextline db 0dh, 0ah, "$"    ansname times 25 db "$",0dh, 0ah,"$"    greet db "hello!",0dh,0ah,"$"    greet2 db "how you?",0dh,0ah,"$" 

  1. you need write max value before calling dos service!

    lea dx, [ansname] ;get name mov byte [ansname], 19h ; initialize name 25 chars max mov ah, 0ah  int 21h 
  2. setup input buffer without carriage return , linefeed codes.

    ansname times 2+25 db "$" 
  3. remove carriage return , linefeed codes greet message , add space after text.

    greet db "hello! ", "$" 
  4. add space before greet2 message.

    greet2 db " how you?",0dh,0ah,"$" 
  5. before can print name have remove carriage return (0dh) dos appended result.

    mov bl, [ansname+1] mov bh, 0 mov byte [ansname+2+bx], "$" lea dx, [ansname+2] mov ah, 09h int 21h 

Comments

Popular posts from this blog

php - Invalid Cofiguration - yii\base\InvalidConfigException - Yii2 -

How to show in django cms breadcrumbs full path? -

ruby on rails - npm error: tunneling socket could not be established, cause=connect ETIMEDOUT -