您的位置:首页 > 其它

<汇编语言>实验10_3(2)

2014-10-05 01:50 232 查看
assume cs:code,ds:data,ss:stack

data segment

db 40 dup (0)

dw 123,12666,1,8,3,38

data ends

stack segment

db 20 dup (0)

stack ends

code segment

start:

mov bx,data

mov ds,bx

mov bx,stack

mov ss,bx

mov sp,20

mov cx,6

mov si,0

mov bx,40

s3:

mov ax,ds:[bx]

push bx

push cx

mov bx,0

mov ds:[35],bx ;;;;清0计数值

call dtoc

pop cx

pop bx

add bx,2h

loop s3

mov dh,13

mov dl,35

mov cl,2

mov si,0

call show_str

mov ax,4c00h

int 21h

;;;;;;;;;;;;;转换;;;;;;;;;;;;;;;;;;;;;;;;

dtoc:

mov dx,0 ;高字节为0,低字节为(ax)

mov bx,10

div bx
;除法操作,结果商放在ax中,余数放在dx中

add dx,30h ;加上30h表示,数字1,转换为字符“1”

push dx
;放入栈中

mov bx,ds:[35] ;入栈计数

add bx,1

mov ds:[35],bx

mov cx,ax

jcxz ok2
;判断商是否为0,如果为0,退出

jmp short dtoc

ok2:

mov cx,ds:[35]

s2:

pop ax

mov ds:[si],al

inc si

loop s2

ret

;;;;;;;;;;;;;;;;;;;display;;;;;;;;;;;;;;;;;;;;;;;;;;;;

show_str:

push ax

push bx

push cx

mov al,160

mul dh

mov bx,ax

mov al,2

mul dl

add bx,ax

mov ax,0b800h

mov es,ax

mov dl,cl

s0:

mov cl,[si]

mov ch,0

jcxz ok

mov ch,dl

mov es:[bx],cx

add bx,02h

inc si

jmp short s0

ok:

pop cx

pop bx

pop ax

ret

code ends

end start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: