鱼C论坛

 找回密码
 立即注册
查看: 1799|回复: 1

[技术交流] 自己的学习成果 还有1个多月就该就可以结果学习了

[复制链接]
发表于 2013-2-27 14:16:39 | 显示全部楼层 |阅读模式

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

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

x
;2013-02-27 10:01 王爽 汇编语言 实验10.3 显示数字问题
;公式如下:
assume cs:code,ss:szeeg

data segment
dw 123,12666,1,8,3,38
data ends

szeeg segment
  dw 16 dup (?)
szeeg ends

code segment
  start:mov ax,data          ;设置数据段
        mov ds,ax
        mov ax,szeeg         ;设置栈段
        mov ss,ax
        mov sp,20h
        mov ax,0B800h        ;设置显存段
        mov es,ax
        
        mov si,0
        mov di,6*160+80      ;在显示屏上第6行第40开处显示数据
        mov bp,0

        mov cx,6
      a:call dtop            ;调用子程序
        inc si
        inc si               ;定位数据段内的数"字"据
        loop a               ;循环遍历数据段数据

        mov ax,4c00h
        int 21h

;以下是子程序代码实现数据字符显示功能
   dtop:push cx
        mov ax,0             ;清除ax寄存器内的数据
        mov ax,ds:[si]       ;取出数据段内的数据作被除数
        mov bx,10             ;除数
     
      s:div bx               ;进行除法运算
        mov cx,dx
        jcxz c
        add dl,48
        mov dh,02h           ;设置绿色字体
        push dx              ;将转换后的数据入栈
        inc bp               ;记录转换次数用于逆序循环用
        mov ax,ax
        mov bx,bx
        mov dx,0
        jmp short s

      c:mov cx,bp             ;设置循环次数
      n:pop ax                ;数据出栈进行还原数据
        mov es:[di],ax        ;逆序转换数据
        add di,2              ;定位显存段偏移
        loop n

     ok:mov dl,2ch            ;设置间隔符","逗号
        mov dh,03h            ;设置浅蓝色字体
        mov es:[di],dx        ;输出显示排过序的数据
        add di,2
        mov dx,0
        mov bp,0              ;清除上一次的循环记录次数
        pop cx
        ret
;数据字符显示子程序 结束
code ends
end start
;以上代码有面具独立实现,请学习中的朋友只要但见不要抄袭
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-27 17:08:45 | 显示全部楼层
:lol不错,很努力的样子,坚持。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-7 22:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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