案例3计算平台长度程序

来源:互联网 发布:mysql没有可视化界面 编辑:程序博客网 时间:2024/06/05 06:18

这是一个计算数字平台长度的程序,如:
运行时输入:
111122333,结果为:
                                4
         1111


汇编代码:

data segmentobf  db  '***** welcome you !*****',0dh,0ah      db             ' input data:','$'a0   db ?a1   db ?b0   db ?b1   db ?a    db ?b    db ?data endsstack segment stack      db 200 dup(0)      stack endscode  segment      assume cs:code, ds:data,ss:stackmain:mov ax, data     mov ds, ax     mov ah, 9     lea dx, [obf]     int 21h     inc dx     mov dl, 13     mov ah, 2     int 21h     mov dl,10     int 21h     mov ah,1     int 21h     cmp al, 13     jz lab1     mov [a0], al     mov [a], al     mov [a1], 1x1:  mov ah, 1     int 21h     cmp al, 13     jz lab1     mov [b], al     mov bl, [b]     cmp bl, [a]     jnz x2     add [a1], 1     jmp x1x2:  mov [b0], bl     mov [b1], 1x3:  mov ah, 1        int 21h     mov [a], al     cmp bl,[a]     jnz x4     add [b1],1     jmp x3x4:  mov cl, [b1]     cmp cl, [a1]     jb  y1     mov cl, [b0]     mov [a0], cl     mov cl, [b1]     mov [a1],cl y1: cmp al, 13     jz  lab1     mov [b0], al     mov [b1], 1     mov [b], al     mov bl, [b]     jmp x3lab1: mov ah, 2      mov dl,13      int 21h      mov dl,10      int 21h      cmp [a1],10      jb  z1      mov ah,0      mov al, [a1]      mov bl, 10      div bl      add ax, 3030h      mov bx, ax      mov ah, 2      mov dl, bl      int 21h      mov dl, bh      int 21h      jmp z2z1: add [a1], 30h    mov dl, [a1]    int 21h    sub [a1],30hz2: mov ah,2    mov dl, 13    int 21h    mov dl, 10    int 21h    mov cx, 0    mov cl, [a1]    mov ah, 2m:  mov dl,[a0]    int 21h    loop m    mov ah, 4ch    int 21hcode ends     end main




1 0