程式碼:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TITLE 輸入三角形三邊長,求是否存在此三角形,若是直角三角形則會呈現"直角三角形" (h502.asm) | |
INCLUDE Irvine32.inc ;INCLUDE 指令會從位於組譯器的INCLUDE目錄內的Irvine32.inc文字檔中,複製必要的定義與初始資訊 | |
.data ;.data標記程式中含有變數的區域 | |
InputString BYTE "輸入三角形三邊長:",0 | |
msg0 BYTE "存在此三角形",0 | |
msg1 BYTE "不存在此三角形",0 | |
msg2 BYTE "為直角三角形",0 | |
triangle DD 3 dup (?) | |
.code ;.code指引標記著程式碼區段起始的位置,所有可執行的敘述,都會放在程式碼區段內 | |
Compute PROC USES ecx edx eax esi | |
;=========sorting============ | |
mov eax,[triangle] | |
mov ebx,[triangle+4] | |
.IF eax > ebx | |
mov [triangle],ebx | |
mov [triangle+4],eax | |
.ENDIF | |
mov eax,[triangle+8] | |
mov ebx,[triangle+4] | |
.IF eax < ebx | |
mov [triangle+8],ebx | |
mov [triangle+4],eax | |
.ENDIF | |
;========a+b>c========= | |
mov eax,[triangle] | |
mov ebx,[triangle+4] | |
mov ecx,[triangle+8] | |
add eax,ebx | |
.IF eax>ecx ;if(a+b>c) | |
mov edx,OFFSET msg0 | |
call WriteString | |
call Crlf | |
call Right_triangle ;判斷是不是right_triangle | |
.ELSE ;if(a+b<=c) | |
mov edx,OFFSET msg1 | |
call WriteString | |
call Crlf | |
.ENDIF | |
ret | |
Compute ENDP | |
;============ is right triangle or not================ | |
Right_triangle PROC | |
mov ecx,3 | |
mov esi,OFFSET triangle | |
mov ebx,0 | |
L1: | |
mov eax,[esi+4*ebx] | |
mul eax | |
mov [esi+4*ebx],eax | |
inc ebx | |
loop L1 | |
mov eax,[triangle]; | |
add eax,[triangle+4]; | |
mov ebx,[triangle+8]; | |
.IF eax==ebx | |
mov edx,OFFSET msg2 | |
call WriteString | |
call crlf | |
.ENDIF | |
ret | |
Right_triangle ENDP | |
main PROC ;PROC指引標記著程序的起始位置 | |
mov edx,OFFSET InputString | |
call WriteString | |
mov ecx,3 | |
mov esi,OFFSET triangle | |
mov ebx,0 | |
L1: | |
call ReadInt | |
mov [esi+4*ebx],eax | |
inc ebx | |
loop L1 | |
call Compute | |
exit ;將(非直接)呼叫一個預先定義的MS-Windows函式,此函式的作用是停止此程式的執行 | |
main ENDP ;ENDP標記main程序的結束位置 | |
END main ;標記此程式啟動的程序 | |
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。