在程序集中实现三个嵌套for循环

时间:2013-11-01 07:02:26

标签: assembly x86

我想使用汇编语言制作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

我从一个例子中创建了这个简单的代码。

1 个答案:

答案 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会毫无问题地执行您的程序!