首页
社区
课程
招聘
汇编输出字符问题
发表于: 2020-11-29 22:30 2401

汇编输出字符问题

2020-11-29 22:30
2401

data segment

  x db 10

    db ?

    db 10 dup(0)

  z dw 10 

  y dw 0

  istr2 db '.x$'

  crlf db 0dh, 0ah,'$'

data ends

assume cs:code, ds:data

code segment

start:

   mov ax, data

   mov ds, ax

    

   ; 输入数值

   lea dx, x

   mov ah,0ah

   int 21h

    

   ;输出空格

   lea dx, crlf

   mov ah,9

   int 21h

    

   call convert2bin 

   mov ax,y  

    

   call print

   mov ah,4ch

   int 21h

   

 

 

;convert string x to number

convert2bin proc near

   mov ch,0

   mov cl, x[1]

   mov dl,10

   mov bx,0

   mov ah,0

c0:

   mov al,x[2+bx]

   and al,0fh

   xchg ax, y;交换

   mul dl

   xchg ax, y

   add y, ax

   inc bx

   loop c0

   ret

convert2bin endp

;print(ax) in decimal

print proc near

  xor cx, cx

  mov bx, 10

Q0:

  xor dx,dx

  div bx

  xor dx, 0e30h

  push dx

  inc cx

  cmp ax, 0

  jnz Q0

Q1:

  pop ax

  int 10h

  loop Q1

  ret

print endp

code ends

   end start

为什么输入2000以内能正常输出,超过比如输入3000就不能正常输出?


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2020-11-29 22:32 被zx_838741编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//