跳转到内容

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 汇编语言

华夏公益教科书