I don't know why emu8086 does not recognize the movezx instruction, sorry I am new to assembly. thanks for the help..
.MODEL SMALL
.STACK 64
;--------------------------
.DATA
TOPROW EQU 08
BOTROW EQU 15
LEFTCOL EQU 26
ATTRIB DB ?
ROW DB 00
SHADOW DB 19 DUP(0DBH)
MENU DB 0C9H, 17 DUP(OCDH), 0BBH
DB 0BAH, 'Add records '
DB 0BAH, ' Delete records '
DB 0BAH, ' Enter Orders '
DB 0BAH, ' Print Report '
DB 0BAH, ' Update accounts '
DB 0BAH, ' View records '
DB 0C8H, 17 DUP(OCDH),0BCH
PROMPT DB ' To select an item, use <Up/Down Arrow>'
DB ' and press <Enter> '
DB 13, 10 ' Press <Esc> to exit. '
;---------------------------
.CODE
A10MAIN PROC FAR
MOV AX,@data
MOV DS,AX
MOV ES,AX
CALL Q10CLEAR
MOV ROW,BOTROW+4
A20:
CALL B10MENU
MOV ROW,TOPROW+1
MOV ATTRIB 16H
CALL D10DISPLAY
CALL C10INPUT
CMP AL,1BH
JNE A20
MOV AX,0600H
CALL Q10CLEAR
MOV AX,4C00H
INT 21H
A10MAIN ENDP
;Display shadow box, next menu on top, then prompt
;--------------------------------------------------
B10MENU PROC NEAR
PUSHA
MOV AX,1301H
MOV BX,0060H
LEA BP,SHADOW
MOV CX,19
MOV DH,TOPROW+1
MOV DL,LEFTCOL+1
B20: INT 10H
INC DH
CMP DH,BOTROW+2
JNE B20
MOV ATTRIB,71H
MOV AX,1300H
MOVZX BX,ATTRIB
LEA BP,PROMPT
This is the unfinished code from Peter Abel's book (IBM PC ASSEMBLY LANGUAGE AND PROGRAMMING 5TH EDITION)