跳轉到內容

TI 83 Plus 組合語言/Hello World

來自華夏公益教科書,自由的教科書

在本節中,您將建立一個程式,在螢幕上顯示“Hello, World”。

編寫程式

[編輯 | 編輯原始碼]

在記事本上建立一個新的文字檔案,並鍵入以下文字

.NOLIST
#define   EQU   .equ
#define   equ   .equ
#define   END   .end
#define   end   .end
#include "ti83plus.inc"
.LIST
     .org 9D93h
      .db $BB,$6D
      ld a,0           ; load the value 0 to register a, the ''accumulator''
      ld (CURCOL),a    ; assign the contents of register a to memory address (CURCOL) in the RAM
      ld (CURROW),a    ; assign the contents of register a to memory address (CURROW) in the RAM
      ld hl,text       ; load the data in label "text" to register hl
      B_CALL(_PutS)    ; calls a function in ti83plus.inc to print text
      B_CALL(_NewLine) ; calls a function in ti83plus.inc to insert a lnbreak (for legibility)
      ret              ; returns from the program to the calc's OS
text:
      .db "Hello, World",0
.end
end

製表符的線條需要使用製表符!將此檔案儲存為 myprog.z80 到您的“Programs”子資料夾中。此外,請注意,命令 B_CALL() 可能需要更改為 bcall(),具體取決於編譯過程中使用的包含檔案的內容。如果命令(B_CALL 或 bcall)與 ti83plus.inc 中定義的命令不同,編譯器將記錄一個錯誤,儘管在 ti83plus.inc 的最流行版本中,它是 bcall - 只需將一個替換為另一個就可以解決這個問題。

編譯程式

[編輯 | 編輯原始碼]

編譯本質上意味著將文字程式碼轉換為機器可以讀取的程式碼。

要編譯程式 myprog.z80,首先開啟命令提示符(它應該在附件中)。您應該會看到一個黑色的視窗,裡面有一些白色的文字,顯示您所在的資料夾。第一步是將資料夾更改為您的程式資料夾。為此,請使用以下命令

  1. cd 子資料夾名稱(這將進入您告訴它的子資料夾。)
  2. cd ..(這將立即進入包含您所在資料夾的資料夾。)

之後,您需要鍵入

  1. compile myprog

如果您正確地遵循了所有說明,這應該會自動編譯 myprog.z80

螢幕截圖

完成的程式應該位於您的“Programs”資料夾中,名為 myprog.8xp

測試程式

[編輯 | 編輯原始碼]

在您的計算機上,開啟 TI 83 Plus 快閃記憶體偵錯程式以建立一個用於測試目的的假計算器。點選白色紙張圖示建立一個新的假計算器,然後選擇 83+ 計算器。然後點選 Load... RAM File 並開啟您編譯的程式 (myprog.8xp)。最後,點選三角形播放按鈕開始模擬。在假計算器上,按 [2nd]+[Catalog] 撥出目錄,然後向下箭頭到 Asm(. 按 Enter 將命令插入螢幕,然後選擇您的程式 ([PRGM],[ENTER])。計算器螢幕應該顯示 Asm(prgmMYPROG)。現在按 Enter,螢幕上應該顯示“Hello World”。

在將程式用於真實計算器之前,始終在快閃記憶體偵錯程式上測試您的程式,因為您的真實計算器有很大可能會崩潰。

程式的命令

[編輯 | 編輯原始碼]

現在唯一重要的行是中間的行

      ld a,0
      ld (CURCOL),a
      ld (CURROW),a
      ld hl,text
      B_CALL(_PutS)
      ret
text:
      .db "Hello, World",0

當計算器執行程式時,它會逐行遵循命令。第一行 (ld a,0) 將零載入到 a 中,a 是一個常用的暫存器。所以現在暫存器 a = 0。接下來的兩行將該數字載入到 RAM 中的游標行和列扇區。所以現在游標位於 0,0,接下來的文字將顯示在該位置。第四行 (ld hl,text) 將 .db "Hello... 的位置載入到 hl 中,hl 是另一個暫存器。B_Call(_PutS) 獲取 hl 指定的文字,並將其顯示在當前游標位置。最後,ret 告訴計算器退出程式。現在您應該對第一個程式中大多數行的功能有一個模糊的瞭解。

這個小程式雖然很小,但遠非最佳。ld a,0 可以用 xor a 替換,只要您不需要保留標誌即可。XOR A(見 [1])反轉任何為 1 的位,所以基本上它將 A 設定為零。這還不是全部,可以用 ld (CurRow),hl 將 CurCol 和 CurRow 一次性載入,L 將進入 CurRow,H 將進入 CurCol。

      ld hl,0
      ld (CurRow),hl
      ld hl,text
      B_CALL(_PutS)
      ret
text: .db "Hello, World",0


上一個:你需要什麼
下一個:跳轉
目錄:TI 83 Plus 組合語言

華夏公益教科書