标题:有段书中代码自己实践时出错
取消只看楼主
初学编程的人
Rank: 2
等 级:论坛游民
威 望:2
帖 子:90
专家分:84
注 册:2017-3-12
结帖率:66.67%
已结贴  问题点数:20 回复次数:3 
有段书中代码自己实践时出错
程序代码:
%include "pm.inc" 

org 07c00h 
jmp LABEL_BEGIN 

[SECTION .gdt] 
LABEL_GDT: Descriptor 0, 0, 0 
LABEL_DESC_CODE32: Descriptor 0, SegCode32Len-1, DA_C+DA_32 
LABEL_DESC_VIDEO: Descriptor 0b8000h, 0ffffh, DA_DRW 

GdtLen equ $-LABEL_GDT 
GdtPtr dw GdtLen-1 
dd 0 

SelectorCode32 equ LABEL_DESC_CODE32-LABEL_GDT 
SelectorVideo equ LABEL_DESC_VIDEO-LABEL_GDT 


[SECTION .s16] 
[BITS 16] 
LABEL_BEGIN: 
mov ax, cs 
mov ds, ax 
mov es, ax 
mov ss, ax 
mov sp, 0100h 

xor eax, eax 
mov ax, cs 
shl eax, 4 
add eax, LABEL_SEG_CODE32 
mov word [LABEL_DESC_CODE32+2], ax 
mov eax, 16 
mov byte [LABEL_DESC_CODE32+4], al 
mov byte [LABEL_DESC_CODE32+7], ah 

xor eax, eax 
mov ax, ds 
shl eax, 4 
add eax, LABEL_GDT 
mov dword [GdtPtr+2],?eax 

lgdt [GdtPtr] 
cli 

in al, 92h 
or al, 00000010b 
out 92h, al 

mov eax, cr0 
or eax, 1 
mov cr0, eax 

jmp dword SelectorCode32:0 


[SECTION .s32] 
[BITS 32] 
LABEL_SEG_CODE32: 
mov ax, SelectorVideo 
mov gs, ax 
mov edi, (80*11+79)*2 
mov ah, 0ch 
mov al, 'P' 
mov [gs:edi], ax 

jmp $

SegCode32Len  equ $-LABEL_SEG_CODE32


程序代码:
;pm.inc
%macro Desriptor 3
    dw    %2 & 0FFFFh
    dw    %1 & 0FFFFh
    db    (%1 >> 16) & 0FFh
    dw    ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh)
    db    (%1 >> 24) & 0FFh
%endmacro

用nasm编译出现如下错误
boot.asm:7: error: parser: instruction expected
boot.asm:8: error: parser: instruction expected
boot.asm:9: error: parser: instruction expected

不知何解
搜索更多相关主题的帖子: 出错 jmp mov asm boot 
2017-09-04 22:31
初学编程的人
Rank: 2
等 级:论坛游民
威 望:2
帖 子:90
专家分:84
注 册:2017-3-12
得分:0 
编译环境,OS:win10  编译软件: nasm
2017-09-05 10:48
初学编程的人
Rank: 2
等 级:论坛游民
威 望:2
帖 子:90
专家分:84
注 册:2017-3-12
得分:0 
问题解决,原因是书中所列代码段不完整,需要附带光盘的完整pm.inc,书中未说明需要全部代码
2017-09-05 14:19
初学编程的人
Rank: 2
等 级:论坛游民
威 望:2
帖 子:90
专家分:84
注 册:2017-3-12
得分:0 
问题解决,原因是书中所列代码段不完整,需要附带光盘的完整pm.inc,书中未说明需要全部代码
2017-09-05 14:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480480-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.494632 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved