Illegal instruction in Assembly

Posted by Natasha on Stack Overflow See other posts from Stack Overflow or by Natasha
Published on 2010-04-15T16:24:42Z Indexed on 2010/04/15 16:33 UTC
Read the original article Hit count: 366

Filed under:

I really do not understand why this simple code works fine in the first attempt but when putting it in a procedure an error shows:

NTVDM CPU has encountered an illegal instruction CS:db22 IP:4de4 OP:f0 ff ff ff ff

The first code segment works just fine:

.model small
.stack 100h
.code

start:
  mov ax,@data
  mov ds,ax
  mov es,ax

   MOV AH,02H    ;sets cursor up            
   MOV BH,00H
   MOV DH,02
   MOV DL,00
   INT 10H

EXIT:

MOV AH,4CH
INT 21H
END

However This generates an error:

.model small
.stack 100h
.code

start:
  mov ax,@data
  mov ds,ax
  mov es,ax

  call set_cursor

  PROC set_cursor near

  MOV AH,02H    ;sets cursor up             
  MOV BH,00H
  MOV DH,02
  MOV DL,00
  INT 10H
 RET
 set_cursor ENDP

EXIT:

  MOV AH,4CH
  INT 21H
  END

Note: Nothing is wrong with windows config. I have tried many sample codes that work fine

Thanks

© Stack Overflow or respective owner

Related posts about assembly