I just started assembly programming, x86, and I am kind of getting the hang of it, but I am still far from becoming great at it. It's interesting to see what I do in Java from a different view. Anyways, for the life of me, I can't figure out what I am doing wrong. This is an assignment, and I don't expect to be handed my entire assignment, but I am running into all kinds of errors and would appreciate any help. I commented out a lot of it and am taking smaller steps. There is an example in the book that has some similarities in what I have done that's not commented out, but I was given an error. The book's example includes Irvinge32.inc, but I have no idea what that is. The thing is that "The NTVDM CPU has encountered an illegal instruction. CS:0594 IP:0037 OP:ff ff 75 03 e9" error. I have no idea why this is happening. Thank you for your time and effort.
.MODEL SMALL .386p ;Needed for 32-bit instructions(movsx and movzx) .STACK 512 word1 EQU 10000000b ;set word1 to -128 in binary .DATA ;bytes db 10 DUP (0) ;using DUP, creates a ten zeroes in memory dec_byte1 db 25d ;decimal byte, symbol is d or t dec_byte2 db 2d ;decimal byte dec_byte3 db 10d ;decimal byte ; bin_byte db 00011001b ;binary byte ; oct_byte db 031q ;octal byte, symbol is q or o ; hex_byte db 19h ;hexadecimal byte ; str1 db 'String' ;string ; word2 dw ? ;unitilialized, then filled with 10000000b dec_fill db ? ;byte that is uninitialized ;empty db 0b ;0 ;doubword dd 12345678h ;doubleword, unsigned ;quadword dq 1234567812345678h ;quadword ;tenbyte dt 1000000000123456789Ah ;tenbyte ;fill2 EQU word ptr bin_byte ;dec_byte into fill2 variable .CODE STARTPOINT: mov ax,@data mov ds,ax ;set DS to point to the data segment ;Byte Operations mov al, dec_byte1 ;gets the dec_byte1 value sub al, dec_byte2 ;subtracts dec_byte2 value from the dec_byte1 value add al, dec_byte3 ;adds the dec_byte3 value from the dec_byte1 value inc al ;increases the value in al by 1 mov dec_fill, al ;mov al, word1 ;puts word1 into al ;mov bl, byte ptr word1 ;puts word1 into bl ;Word operations ;mov ax, fill2 ;mov bx, word2 ;Miscellaneous operations ;push ax ;pop bx ;mov al, OFFSET str1 ;xchg bh, bl END STARTPOINT; This line is a must in every assembly language program