当前位置: 代码迷 >> 汇编语言 >> ml T10-1.asm 编译出错解决思路
  详细解决方案

ml T10-1.asm 编译出错解决思路

热度:8786   发布时间:2013-02-26 00:00:00.0
ml T10-1.asm 编译出错
错误信息:T10-1.ASM <105> :error   A2068:instruction   prefix   not   allowed
这个“REPZ”前缀怎么会有问题呢?怎么会没有得到承认呢?
该行内容:REPZ   MOVSD   在程序中已经标出
上面的编译器是使用的MASM6.11版本的。编译时在windows   xp的cmd下编译的,
具体命令行是:ml   T10-1.asm
T10-1.asm   程序源代码如下:
;******************************************************************
;《80x86汇编语言程序设计教程》实例1源程序
;功能:演示实模式和保护模式的切换
;******************************************************************
;16位偏移的段间直接转移指令的宏定义
JUMP MACRO   selector,offsetv
        DB 0EAH ;操作码
        DW offsetv ;16位偏移
        DW     selector ;段值或选择子
        ENDM
;字符显示宏指令的定义
ECHOCH MACRO   ascii
mov ah, 2
mov dl,   ascii
int 21h
ENDM
;存储段描述符结构类型的定义
DESCRIPTOR STRUC
LIMTL DW 0 ;段界限(0~15)
BASEL DW 0 ;段基地址(0~15)
BASEM DB 0 ;段基地址(16~23)
ATTRIBUTES DW 0 ;段属性
BASEH DB 0 ;段基地址(24~31)
DESCRIPTOR ENDS
;伪描述符结构类型定义
PDESC STRUC
LIMIT DW 0 ;16位界限
BASE DD 0 ;基地址
PDESC ENDS
;常量定义
ATDW = 92H ;存在的可读写数据段属性值
ATCE = 98H ;存在的只执行代码段属性值
;          
.386P
;------------------------------------------------------------------
DSEG SEGMENT USE16 ;16位段
        GDT LABEL   BYTE ;全局描述符表GDT
        DUMMY DESCRIPTOR <> ;空描述符
        CODE DESCRIPTOR <0FFFFH,,,ATCE,>
        CODE_SEL = CODE   -   GDT;代码段描述符的选择子
        DATAS DESCRIPTOR <0FFFF,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

STACKS   SEGMENT
        ;此处输入堆栈段代码
STACKS   ENDS

CSEG SEGMENT USE16
        ASSUME   CS:CSEG, DS:DSEG
START:
        MOV AX,DSEG
        MOV   DS,AX
        ;准备要加载到GDTR的伪描述符
        MOV   BX,16
        MUL   BX ;EDX:AX=AX*16   计算并设置GDT基地址
        ADD   AX,OFFSET GDT
        ADC   DX,0
        MOV   WORD   PTR VGDTR.BASE,   AX
        MOV   WORD   PTR VGDTR.BASE+2,DX
        ;设置代码段描述符
        MOV   AX,CS
        MUL   BX
        MOV   CODE.BASEL, AX
        MOV   CODE.BASEM, DL
        MOV   CODE.BASEH, DH
        ;设置目标数据段描述符
        MOV   AX,DS
        MUL   BX
        ADD   AX,OFFSET BUFFER
        ADC   DX,0
  相关解决方案