鱼C论坛

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

[汇编作业] 将ax中的数据以10进制ascii码显示

[复制链接]
发表于 2014-5-19 20:42:38 | 显示全部楼层 |阅读模式

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

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

x
  1. assume cs:code,ds:data,ss:stack

  2. data segment
  3.         db 10 dup(0)
  4. data ends

  5. stack segment
  6.         db 0
  7.         dw 8 dup(0)
  8. stack ends

  9. code segment
  10. start:
  11.         mov ax,stack
  12.         mov ss,ax
  13.         mov sp,16
  14.        
  15.         mov ax,data
  16.         mov ds,ax
  17.         mov di,1
  18.        
  19.         mov ax,0A1C2hs
  20.         call dtoc
  21.        
  22.         mov dh,10                ; 行数
  23.         mov dl,50                ; 列数
  24.         mov si,di
  25.         call show_str
  26.         mov ax,4c00h
  27.         int 21h

  28.         ; 将数据以10进制ascii码存放到di目标空间去
  29.         dtoc:
  30.                 push cx
  31.                 push bx
  32.                 mov bx,10
  33.                 s:
  34.                         mov cx,ax
  35.                         jcxz jisu

  36.                         mov dx,0
  37.                         div bx
  38.                         add dl,30h
  39.                         mov [di],dl
  40.                        
  41.                         inc di
  42.                         jmp s
  43.                        
  44.                         jisu:
  45.                         dec di
  46.                         pop bx
  47.                         pop cx
  48.                         ret
  49.                        
  50.           ;名称:show_str
  51.         ;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串
  52.         ;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79),(cl)=颜色,ds:si指向字符串的首地址
  53.         ;返回无
  54.         show_str:
  55.                 push cx
  56.                 push si
  57.                 push ax
  58.                 push di
  59.                 push es
  60.                
  61.                 mov ax,0b800h
  62.                 mov es,ax
  63.                
  64.                                 push dx
  65.                                 mov ah,0
  66.                                 mov al,dh
  67.                                 mov bx,160
  68.                                 mul bx
  69.                                
  70.                                 pop dx
  71.                                 push ax
  72.                                
  73.                                 mov ah,0
  74.                                 mov al,dl
  75.                                 mov bx,2
  76.                                 mul bx
  77.                                
  78.                                 pop bx
  79.                                 add ax,bx
  80.                                
  81.                         
  82.                 mov di,ax
  83.                
  84.                 ks:        
  85.                         mov cl,[si]
  86.                         mov ch,0
  87.         
  88.                         jcxz jishu
  89.                         
  90.                         mov es:[di],cl
  91.                         mov byte ptr es:[di+1],02h
  92.                         
  93.                         dec si                ; 下一个字符
  94.                         add di,2        ; 下一个要显示的位置
  95.                         
  96.                         jmp short ks
  97.                
  98.                 jishu:
  99.                         pop es
  100.                         pop di
  101.                         pop ax
  102.                         pop si
  103.                         pop cx
  104.                         ret
  105. code ends
  106. end start
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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