|
发表于 2023-1-13 16:27:01
|
显示全部楼层
本帖最后由 jackz007 于 2023-1-13 16:51 编辑
你根据什么说程序死循环了?代码里有循环吗?
- assume cs:code , ds:data
- stack segment para stack 'STACK'
- dw 400h dup(0)
- stack ends
- data segment para public 'DATA'
- dd 100001
- dw 100
- buff01 db 20h dup(00)
- data ends
- code segment para public 'CODE'
- show_dec proc near
- push bp
- mov bp,sp
- push ax
- push cx
- push dx
- push si
- push di
- push ds
- mov dx,[bp+4]
- mov ax,[bp+6]
- mov si,offset buff01
- push si
- mov cx,10
- dec01: div cx
- add dl,'0'
- mov byte ptr ds:[si],dl
- inc si
- xor dx,dx
- or ax,ax
- jnz dec01
- mov byte ptr ds:[si],al
- lea di,[si-1]
- pop si
- push si
- dec02: cmp si,di
- jae dec03
- mov al,byte ptr[si]
- xchg byte ptr[di],al
- mov byte ptr ds:[si],al
- inc si
- dec di
- jmp short dec02
- dec03: pop si
- mov ah,2
- dec04: mov dl,ds:byte ptr[si]
- or dl,dl
- jz dec05
- int 21h
- inc si
- jmp short dec04
- dec05: pop ds
- pop di
- pop si
- pop dx
- pop cx
- pop ax
- mov sp,bp
- pop bp
- ret 04
- show_dec endp
- main proc far
- mov ax,data
- mov ds,ax
- mov ax, word ptr ds:[0]
- mov dx, word ptr ds:[2]
- div word ptr ds:[4]
- xor dx,dx
- push ax
- push dx
- call show_dec
- mov ax,4c00h
- int 21h
- main endp
- code ends
- end main
复制代码 |
|