我想使用汇编语言制作3 for循环所有我能做的就是2 for for循环一个在内部和一个外部。 这是我试过的
name "loops"
org 100h
mov bx, 0 ; total step counter
mov cx, 5
k1: add bx, 1
mov al, '1'
mov ah, 0eh
int 10h
push cx
mov cx, 5
k2: add bx, 1
mov al, '2'
mov ah, 0eh
int 10h
push cx
mov cx, 5
k3: add bx, 1
mov al, '3'
mov ah, 0eh
int 10h
loop k3 ; internal in internal loop.
pop cx
loop k2 ; internal loop.
pop cx
loop k1 ; external loop.
; wait any key...
mov ah, 1
int 21h
ret
我从一个例子中创建了这个简单的代码。
答案 0 :(得分:1)
我刚刚在VMWare虚拟机中运行MS-DOS 6.22下的程序,它运行得非常完美!
因此,您的BIOS,DOS或DOS仿真器可能存在“int 10h”的问题。 “int 10h”不是“call”的特殊变体,所以它取决于BIOS或操作系统“int 10h”真正做什么。
您使用的版本可能正在修改CX寄存器。
MS-DOS 6.22和VMWare使用的BIOS会毫无问题地执行您的程序!