|
发表于 2020-3-19 23:13:25
|
显示全部楼层
本楼为最佳答案
一条make命令搞定
这里是使用nasm编译器,语法和masm有些不一样
main.asm
- segment .code
- ..start:
- mov ax, data
- mov ds, ax
- mov es, ax
- mov ax, stack
- mov ss, ax
- mov sp, 128
- mov dx, msg
- mov ah, 0x09
- int 0x21 ; 显示字符串
- mov ax, 0x4c00
- int 0x21
- segment .data
- msg: db 'hello world!', 0x0d, 0x0a, '
- Makefile
- [code]main.exe: main.obj
- alink -c -oEXE $<
- main.obj: main.asm
- nasm -f obj -o $@ $<
- run: Image
- qemu-system-i386 -hda $<
- Image: main.exe
- sudo kpartx -av $@
- sudo mount /dev/mapper/loop0p1 mnt
- sudo cp $< mnt/SHARE
- sudo umount mnt
- sudo kpartx -dv $@
- clean:
- rm -f main.exe main.obj
复制代码
ms_dos.tar.zip
(604.34 KB, 下载次数: 6)
segment .stack stack
resb 128
[/code]
Makefile
|
|