飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3650|回复: 3

[C/C++] 显示 dd123456789

[复制链接]

该用户从未签到

发表于 2011-1-20 21:48:41 | 显示全部楼层 |阅读模式
本帖最后由 qwangwei 于 2011-1-20 21:49 编辑
  1. assume cs:code

  2. stack segment
  3. dw 100h dup(0)
  4. stack ends

  5. data segment
  6. dd 123456789,0
  7. nstr db 10h dup(0)
  8. data ends

  9. code segment
  10. _showstr:
  11.         push bp
  12.         mov bp,sp
  13.         push cx
  14.         push dx       
  15.         push bx       
  16.         push si       
  17.         mov ax,0b800h
  18.         mov es,ax
  19.         xor ax,ax
  20.         mov al,[bp+7]
  21.         mov cx,80*2       
  22.         mul cl
  23.         xor dx,dx
  24.         mov dl,[bp+6]
  25.         add dl,dl       
  26.         add ax,dx
  27.         mov si,ax

  28.         mov bx,[bp+4]
  29.         mov ah,4
  30. _s_show:
  31.         mov al,[bx]
  32.         cmp al,0
  33.         jz _s_over
  34.         mov es:[si],ax
  35.         inc bx
  36.         inc si
  37.         inc si
  38.         jmp _s_show
  39. _s_over:

  40.         pop si       
  41.         pop bx       
  42.         pop dx       
  43.         pop cx       
  44.         mov sp,bp
  45.         pop bp
  46.         retn       


  47. div_over:
  48.         push bp
  49.         mov bp,sp
  50.         push di
  51.         push si
  52.         push bx
  53.         push dx
  54.         push cx

  55.         mov di,[bp+4]
  56.         mov si,[bp+6]
  57.         add di,10h               
  58. ww:
  59.         mov ax,[si+2]
  60.         mov dx,0
  61.         mov bx,10
  62.         div bx
  63.         mov [si+2],ax       
  64.         cmp dx,0
  65.         jz ww1
  66.         mov ax,[si]
  67.         div bx
  68.         mov [si],ax
  69.         mov cx,dx
  70.         add cx,48
  71.         mov [di],cl
  72.         dec di
  73.         jmp ww
  74. ww1:
  75.         mov ax,[si]
  76.         cmp ax,0
  77.         jz over
  78.         mov dx,0
  79.         div bx
  80.         mov [si],ax
  81.         mov cx,dx
  82.         add cx,48
  83.         mov [di],cl
  84.         dec di
  85.         jmp ww

  86. over:
  87.         add di,1
  88.         mov ax,di
  89.         pop cx
  90.         pop dx
  91.         pop bx
  92.         pop si
  93.         pop di
  94.         mov sp,bp
  95.         pop bp
  96.         retn
  97.        

  98. start:       
  99.          mov ax,stack
  100.         mov ss,ax
  101.         mov sp,200h
  102.        
  103.         mov ax,data
  104.         mov ds,ax
  105.        
  106.         mov ax,0
  107.         push ax
  108.         mov ax,offset nstr
  109.         push ax
  110.         call div_over
  111.         add sp,4
  112.         mov bx,ax
  113.        
  114.         mov ax,0a14h
  115.         push ax
  116.         mov ax,bx
  117.         push ax
  118.         call _showstr
  119.         add sp,4

  120.         mov ax,4c00h
  121.         int 21H
  122. code ends
  123. end start
复制代码

评分

参与人数 1威望 +20 飘云币 +40 收起 理由
Nisy + 20 + 40 Good Job!

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2011-1-21 13:01:22 | 显示全部楼层
不错

利用了数值最大长度来构造了一个类似堆的倒叙存储结构

add cx,48  // 这里尽量使用十六进制

函数的调用上 尽量把 参数的传递等做上注释  

可以参考这个 https://www.chinapyg.com/viewthr ... &extra=page%3D2
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-9-12 22:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2011-2-14 13:27:36 | 显示全部楼层
    /:017抢占楼层!再回头看代码!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2011-2-19 22:08:18 | 显示全部楼层

                   

    支持,关注中












    燃文
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表