Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49599
  • 博文数量: 11
  • 博客积分: 85
  • 博客等级: 民兵
  • 技术积分: 163
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-08 09:59
文章分类

全部博文(11)

文章存档

2013年(8)

2012年(3)

我的朋友

分类: C/C++

2012-09-18 17:44:26

用OpenWatcom编译通过

boot.asm:

  1. DataSeg EQU 07C0H
  2. ExSeg EQU 8000H
  3. StackSeg EQU 9000H
  4. .8086
  5. .MODEL SMALL
  6. .CODE
  7. ORG 0
  8. JMP Start
  9. hello DB 'Operating System Stating...', 13, 10, 0
  10. Start:
  11. MOV AX, StackSeg
  12. MOV SS, AX
  13. XOR SP, SP
  14. MOV AX, ExSeg
  15. MOV ES, AX
  16. MOV AX, DataSeg
  17. MOV DS, AX
  18. MOV AX, OFFSET hello
  19. PUSH AX
  20. CALL _PrintStr
  21. ADD SP, 2
  22. Hung: NOP
  23. JMP Hung
  24. _PrintStr PROC NEAR
  25. PUSH BP
  26. MOV BP, SP
  27. MOV AH, 0EH
  28. MOV BX, 0007H
  29. MOV SI, 04H[BP]
  30. lp0_: MOV AL, [SI]
  31. OR AL, AL
  32. JZ end0_
  33. INT 10H
  34. INC SI
  35. JMP lp0_
  36. end0_: POP BP
  37. RET
  38. _PrintStr ENDP
  39. ORG 510
  40. DW 0AA55H
  41. END

makefile

  1. ASM = wasm
  2. CL = wcl
  3. boot.bin: boot.asm
  4. $(ASM) boot.asm
  5. $(CL) boot.obj
  6. exe2bin boot.exe boot.bin
  7. clean:
  8. del *.exe
  9. del *.obj

阅读(980) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~