汇编语言中的模式

时间:2015-09-01 17:09:15

标签: assembly x86 dos

.model small
.stack 100h
.Data 
 count word 0
.code
 main proc

   mov cx,5
  mov al,40h
   mov ah,2
  mov bx,0


first :
    mov count,cx

   inc bx
   inc al
   mov cx,bx


second :
    mov dl,al
    int 21h 



   loop second
   mov cx ,count
    mov dx,13
    mov ah,2
    int 21h 
     mov dl,10
     mov ah,2
     int 21h
     loop first
    mov ax,4c00h
    int 21h

  main endp
  end main

我编写了这段代码并期待像这样的输出

一个
BB
CCC
DDDD
EEEEE

但获得此输出

一个
00
000
0000
00000

任何人都可以解决此代码中的问题 当我删除换行代码行时,它会给出输出

ABBCCCDDDDEEEE

1 个答案:

答案 0 :(得分:5)

int 21/02正在摧毁您的al值。一个简单的解决方案是使用push ax / pop ax围绕您的int 21h来电。

PS:学会使用调试器。