私はいつも私のクラスでグループの背後にあるように見えます。私はループについての私のクラスの次の章で "練習"したいと思いました。8086 TASMアセンブラ - ループ時のエラー: "値が範囲外です"?
私は(私は実行するために、ミリ秒のすべてを取るだろう考え出した)1〜10,000カウントするために、この小さなループを書いた:
.MODEL SMALL
.STACK 100h
.DATA
Finished DB 10, 13, 'Loop x 10,000 finished. Congratulations! $', 10, 13
.CODE
MAIN PROC
MOV AX, @data
MOV DS, AX
MOV CX, 10000
MOV BX, 0
StrtLoop:
INC BX
LOOP StrtLoop
CMP BX, 10000
JE DispMsg
JMP SkipMsg
DispMsg:
MOV AH, 09H
MOV DX, OFFSET Finished
INT 21H
SkipMsg:
MOV AL, 0h
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
私は数分前にゼロの数を誤って入力し、壊れましたプログラム。なぜこのようなことが起こったのだろうと思っていた。範囲外Loop.ASM
ERROR loop.ASM(15)値:
組み立てファイル:
私はこのエラーを得ました。エラー loop.ASM(24)値が範囲外です。
エラーメッセージ:2
警告メッセージ:なし
渡します
残りメモリ:467k
.MODEL SMALL
.STACK 100h
.DATA
Finished DB 10, 13, 'Loop x 100000 finished. Congratulations! $', 10, 13
.CODE
MAIN PROC
MOV AX, @data
MOV DS, AX
MOV CX, 100000
MOV BX, 0
StrtLoop:
INC BX
LOOP StrtLoop
CMP BX, 100000
JE DispMsg
JMP SkipMsg
DispMsg:
MOV AH, 09H
MOV DX, OFFSET Finished
INT 21H
SkipMsg:
MOV AL, 0h
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
一部のGoogle検索後
(およびメモリについて読んブック手探りレジスタ)、65,535バイトのハード制限があることが分かります。これは正しいです?もし誰かがこの記憶限界を超えたいと思ったら?それを行う方法はありますか?それはちょうど私には奇妙に思える
...
最近、人々が16ビットマシンを頻繁に使用しない理由を発見したように聞こえます。 –
本当に!悲しいことですが、これは私の学校がCIS 215コースで教えるものです。 – SalarianEngineer