汇编跳转错误

来源:百度知道 编辑:UC知道 时间:2024/05/29 08:09:45
.386P
INCLUDE 386SCD.ASM

ECHOCH MACRO ascii
MOV AH,2
MOV DL,ascii
INT 21H
ENDM

DSEG SEGMENT USE16
GDT LABEL BYTE
DUMMY DESCRIPTOR<>

CODE DESCRIPTOR<0FFFFH,,,ATCE,>
CODE_SEL=CODE-GDT

;DATAS DESCRIPTOR<0FFFFH,0H,11H,ATDW,0>
;DATAS_SEL=DATAS-GDT

;DATAD DESCRIPTOR<0FFFFH,,,ATDW,>
;DATAD_SEL=DATAD-GDT

GDTLEN=$-GDT
VGDTR PDESC<GDTLEN-1,>

;BUFFERLEN=256
;BUFFER DB BUFFERLEN DUP(0)
DSEG ENDS

CSEG SEGMENT USE16
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
MOV BX,16
MUL BX
ADD AX,OFFSET GDT
ADC DX,0
MOV WORD PTR VGDTR.BASE,AX
MOV WORD PTR

这条跳转指令执行后,不仅汇编程序本身进入保护模式,而且DEBUG也进入了386保护模式,情况就复杂了.导致发生重启异常.
所以此程序是DEBUG无法正常调试的.
但不影响汇编程序本身,重启不代表你编写的程序错误,而是因为DEBUG.