鱼C论坛

 找回密码
 立即注册
查看: 3676|回复: 0

[汇编作业] 实验10,第3小题,跟小甲鱼老师抄的

[复制链接]
发表于 2016-1-30 21:43:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我还是弄不明白,为什么现在用到栈不再去设定sp指针的位置,push和pop的那样随意,会出现覆盖或溢出的问题嘛

  1. assume cs:code , ds:data
  2.    data segment
  3.         dw 16 dup (0)
  4.    data ends
  5.      code segment
  6.         start:mov ax,12666
  7.                 mov bx,data
  8.                 mov ds,bx
  9.                 mov si,0
  10.                 call dtoc
  11.                 mov dh,8
  12.                 mov dl,3
  13.                 mov cl,44
  14.                 call show
  15.                 mov ax,4c00h
  16.                 int 21h
  17.         dtoc:push dx
  18.                 push cx
  19.                 push ax
  20.                 push si
  21.                 push bx
  22.                 mov bx,0
  23.             s1:mov cx,10d
  24.                 mov dx,0
  25.                 div cx
  26.                 mov cx,ax
  27.                 jcxz s2
  28.                 add dx,30h
  29.                 push dx
  30.                 inc bx
  31.                 jmp short s1
  32.             s2:add dx,30h
  33.                 push dx
  34.                 inc bx
  35.                 mov cx,bx
  36.                 mov si,0
  37.            s3:pop ax
  38.                mov [si],al
  39.                 inc si
  40.                 loop s3
  41.                 pop bx
  42.                 pop si
  43.                 pop ax
  44.                 pop cx
  45.                 pop dx
  46.                 ret
  47.         show:push cx
  48.                  push si                 
  49.                  mov ax,0b800h
  50.                  mov es,ax
  51.                  mov ax,0
  52.                  mov al,0a0h
  53.                  mul dh
  54.                  mov di,ax
  55.                  mov al,2
  56.                  mul dl
  57.                  sub ax,2
  58.                  add di,ax
  59.                  mov bx,0
  60.                  mov al,cl
  61.                  mov ch,0
  62.                  
  63.                s:mov cl,ds:[si]
  64.                  jcxz ok
  65.                  mov es:[di+bx],cl
  66.                  mov es:[di+bx+1],al
  67.                  inc si
  68.                  add di,2
  69.                  jmp short s
  70.                  
  71.           ok: pop si
  72.                 pop cx
  73.                  ret
  74. code ends
  75. end start                 
复制代码
2345截图20160130213428.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-1 05:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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