我正嘗試在LMC中使用舊的彙編語言編寫兩個不同的程序。第一種情況如下:彙編語言問題。小男人計算機程序
編寫一個LMC程序,該程序需要兩個輸入,一個數從下數,以及步數值(例如:從35減5),直到達到零。它應該打印每個步驟,如果序列不是以零結尾,而是在零之前的最後一個數字,但是如果數字爲負數,則不應該打印該數字。使用13和3作爲輸入的示例輸出將爲:13,10,7,4,1。使用12和3作爲輸入的示例輸出將爲:12,9,6,3,0。
我已經嘗試了一些東西的臺詞:
IN
STO 91
IN
STO 92
IN
STO 93
LDA 91
ADD 92
SUB 93
OUT
HLT
不工作
第二LMC程序我想寫如下:
編寫代碼來計算一個三角形的面積和周長。該程序應該有3個輸入,依次爲三角形的底部,高度和第三邊。代碼應該在輸出框中生成2個值,第一個數字將是面積,第二個數字是周長。 (提示:您可能想使用DAT語句來啓動一些值)。
我甚至不知道從哪裏開始。
任何幫助,將不勝感激。
我也有一些示例代碼幫助:
計算周長&區域 - 第一需L &W¯¯作爲輸入 打印出周長,然後面積。
00 LDA #01;
01 STA 99;
02 IN;
03 STA 98;
04 LDA #00;
05 STA 96;
06 IN;
07 STA 97;
08 ADD 97;
09 ADD 98;
10 ADD 98;
11 OUT;
12 LDA 96;
13 ADD 98;
14 STA 96;
15 LDA 97;
16 SUB 99;
17 STA 97;
18 SKZ;
19 JMP 12;
20 LDA 96;
21 OUT;
22 HLT;
MULTIPLIES TWO NUMBERS。
00 IN;
01 STA 99;
02 STA 97;
03 IN;
04 STA 98;
05 SUB 90;
06 STA 98;
07 SKZ;
08 JMP 12;
09 LDA 97;
10 OUT;
11 HLT;
12 LDA 97;
13 ADD 99;
14 STA 97;
15 LDA 98;
16 JMP 05;
90 DAT 001;
將第一數量的輸入到其自身, THEN減去第二輸入從總
從輸入00 IN;
01 STA 90;
02 IN;
03 STA 91;
04 LDA 90;
05 ADD 90;
06 SUB 91;
07 OUT;
08 HLT;
單程計數下降到零
00 IN;
01 OUT;
02 SUB 98;
03 SKP;
04 JMP 06;
05 JMP 01;
06 HLT;
98 DAT 002;
磨邊甲NUMBER
00 IN; take input
01 STA 99; save value as a mulitiplier
02 STA 97; save value as multiplicand
03 SUB 90; subtract one from counter
04 STA 98; copy value to counter
05 LDA 97; load our accumulator number
06 ADD 99; Add original number
07 STA 97; store intermediate sum
08 LDA 98; Load counter
09 SUB 90; subtract one from counter
10 STA 98; Store counter value
11 SKZ; skip if counter is at zero
12 JMP 05; othewise, loop back to 5
13 LDA 97; load our squared number
14 OUT; Write output
15 HLT; stop
90 DAT 01; countdown value
您需要提供程序和錯誤。你還沒有真正接近。你有一些工作的例子。首先,你需要2個輸入,但你讀了3個輸入。其次,你需要倒數,這意味着你需要一個循環,但你沒有分支語句。我會給你一個提示,你需要使用BRP。 –