有问题的汇编程序(不知错在哪里)
星海
posted @ 2010年11月23日 06:17
in 汇编学习
, 1379 阅读
bios设置为用软盘启动,通过软盘第一扇区内容引导硬盘第一扇区至0:7c00h处,然后引导硬盘系统
1 assume cs:codesg 2 stack segment 3 db 32 dup (0) 4 stack ends 5 6 codesg segment 7 start: 8 mov ax,stack 9 mov ss,ax 10 mov sp,32 11 12 push cs 13 pop ds 14 mov si,offset starsys ;cs[si]指向starsys段 15 16 mov ax,0 17 mov es,ax 18 mov di,200h ;es:[di]指向0:200h内存 19 20 mov cx,offset starsysend-offset starsys 21 cld 22 rep movsb ;将starsys段内容复制到0:200h 23 24 mov ax,0 25 mov es,ax 26 mov bx,200h 27 28 mov al,1 29 mov ch,0 30 mov cl,1 31 mov dl,0 32 mov dh,0 33 34 mov ah,3 35 int 13h ;调用13h中断,将0:200内容复制到软盘第一扇区 36 37 mov ax,4c00h 38 int 21h 39 40 starsys: 41 mov ax,0 42 mov es,ax 43 mov bx,7c00h ;开机时,系统用0:7c00h存放启动设备第一扇区 44 45 mov al,1 46 mov ch,0 47 mov cl,1 48 mov dl,80h 49 mov dh,0 50 mov ah,2 51 int 13h ;读取硬盘第一扇区至0:7c00h 52 53 mov ax,0 54 push ax 55 mov ax,7c00h 56 push ax 57 retf ;将cs,ip改为0:7c00 58 59 starsysend:nop 60 61 codesg ends 62 end start 63