Assembly 编译引导加载程序代码,操作码和操作数的组合无效

Assembly 编译引导加载程序代码,操作码和操作数的组合无效,assembly,dos,bootloader,boot,Assembly,Dos,Bootloader,Boot,我正在编译/组装ms dos的引导加载程序代码,如下所示(行号仅用于演示) 上述代码在第8行给出了以下错误: error: invalid combination of opcode and operands 在一些代码行之后,我面临另一个错误,如下所示: 9. MOV CH,[MediaDescriptor] 10. MOV DL,[DriveNumber] 11. MOV BX,[7C49h] 12. MOV AX,[LABEL7C4B] 13. JMP

我正在编译/组装ms dos的引导加载程序代码,如下所示(行号仅用于演示)

上述代码在第8行给出了以下错误:

error: invalid combination of opcode and operands
在一些代码行之后,我面临另一个错误,如下所示:

9. MOV     CH,[MediaDescriptor]
10. MOV     DL,[DriveNumber]
11. MOV     BX,[7C49h]
12. MOV     AX,[LABEL7C4B]
13. JMP     FAR 0070:0000   ; Same as jumping to
                           ; 0000:0700 (start DOS).
; Boot Record found OS successfully... Jump to OS 
;initialization!
当我编译上述给定代码时,编译器在第13行给出以下错误:

 error: mismatch in operand sizes

错误是什么,请帮助和指导。

您使用的是编译器还是汇编程序?您使用的是什么汇编器?我使用的是NASM汇编器,当我使用MASM时,它会出现错误“asm open failed”。NASM要求段位于括号内:
lds si,[ss:bx]
谢谢prl,我的第一个错误已解决。请帮助我解决下一个错误。像这里这样的NASM中的远立即跳转需要指定为
jmp 70h:0
--没有“远”关键字,并使用“h”后缀作为十六进制数。
 error: mismatch in operand sizes