我最近開始編寫彙編程序。我的問題是我不知道如何結束程序。我寫低於該直到我第二函數調用後加入 jmp finish
沒有顯示所希望的輸出的代碼。我不明白爲什麼這個程序不會自行完成。我真的很感謝你的解釋。結束的組裝過程
Data_segment_name segment para
Data_segment_name ends
Stack_segment_name segment para stack
dw 16 dup(0) ;define your stack segment
Stack_segment_name ends
Code_segment_name segment
Main_prog proc far
assume SS:Stack_segment_name,CS:Code_segment_name,DS:Data_segment_name
mov AX,Data_segment_name ;load the starting address of the data
mov DS,AX ; segment into DS reg.
call cls
call draw1
;jmp finish
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cls proc near
mov ax,0b800h
mov es,ax
mov ax,0720h
mov di,0
mov cx,2000
rep stosw
ret
cls endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
draw1 proc near
push ax
mov di,160*9+40*2
mov ax,0b800h
mov es,ax
mov ax, 1f2ah
stosw
cld
pop ax
ret
draw1 endp
finish:
mov ax,4c00h ; exit program
int 21h
Main_prog endp
Code_segment_name ends
end Main_prog
你嵌套你的程序到'Main_prog',這就是原因。你應該從'finish:'開始向上移動4行到'jmp finish'。 – Jester
感謝您的快速回復。然而,我還有另一個問題,我怎樣才能編寫我的程序,而不將它們嵌套到遠程程序中? @jester – Nemo
告訴你如何。向上移動包括'Main_prog endp'的結尾。 – Jester