汇编语言错误: label or instruction expected at start of line

baidu_15527759 2015-08-11 08:10:45
代码:
[a] db 0x00270000
[b] db 0x0000ffff
mov ax,[a]
mov [b],ax
lgdt [b]
...全文
779 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckdoor 2019-01-15
  • 打赏
  • 举报
回复
没有看到解决办法,是不是记事本写汇编会出现编码问题!
baidu_15527759 2015-08-14
  • 打赏
  • 举报
回复
引用 4 楼 DelphiGuy 的回复:
a dd 00270000h b dd 0000ffffh
这样写的话,后面的lgdt会有问题
baidu_15527759 2015-08-14
  • 打赏
  • 举报
回复
引用 7 楼 DelphiGuy 的回复:
[quote=引用 5 楼 baidu_15527759 的回复:] [quote=引用 4 楼 DelphiGuy 的回复:] a dd 00270000h b dd 0000ffffh
这样写的话,后面的lgdt会有问题 [/quote] 就你的定义来看,a、b是32位数,所以用dd是正确的。至于lgdt会有问题,那是因为你没用对,lgdt装载48-bit GDTR(32-bit GDT指针,16位限制),你根本都没定义。强用lgdt fword ptr b是可以编译通过,肯定也会运行出错。 [/quote] 那该怎么弄?
  • 打赏
  • 举报
回复
引用 5 楼 baidu_15527759 的回复:
[quote=引用 4 楼 DelphiGuy 的回复:] a dd 00270000h b dd 0000ffffh
这样写的话,后面的lgdt会有问题 [/quote] 就你的定义来看,a、b是32位数,所以用dd是正确的。至于lgdt会有问题,那是因为你没用对,lgdt装载48-bit GDTR(32-bit GDT指针,16位限制),你根本都没定义。强用lgdt fword ptr b是可以编译通过,肯定也会运行出错。
  • 打赏
  • 举报
回复
怎么搞的,我就提交回复一次啊。
  • 打赏
  • 举报
回复
引用 5 楼 baidu_15527759 的回复:
[quote=引用 4 楼 DelphiGuy 的回复:] a dd 00270000h b dd 0000ffffh
这样写的话,后面的lgdt会有问题 [/quote] 就你的定义来看,a、b是32位数,所以用dd是正确的。至于lgdt会有问题,那是因为你没用对,lgdt装载48-bit GDTR(32-bit GDT指针,16位限制),你根本都没定义。强用lgdt fword ptr b是可以编译通过,肯定也会运行出错。
baidu_15527759 2015-08-13
  • 打赏
  • 举报
回复
引用 2 楼 zara 的回复:
; 应该是下面这样的吧
a  db 00270000h
b  db 0000ffffh
我试过的,可这样写的话,后面的lgdt又会出错
  • 打赏
  • 举报
回复
a dd 00270000h b dd 0000ffffh
zara 2015-08-12
  • 打赏
  • 举报
回复
; 应该是下面这样的吧
a db 00270000h
b db 0000ffffh
baidu_23107797 2015-08-11
  • 打赏
  • 举报
回复
你写什么呢? ax和a 或b 的type不对 Lgdt是特权命令,起码也要加.386p 况且Lgdt是48bit 至少要写成 lgdt fword ptr xxxxx

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧