鱼C论坛

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

[学习笔记] 实验十

[复制链接]
发表于 2017-9-22 17:43:35 | 显示全部楼层 |阅读模式

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

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

x
编程一、显示字符串
功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串

  1. assume cs: code

  2. data segment

  3.         db 'welcome to masm!', 0
  4.        
  5. data ends

  6. code segment

  7. start : mov ax, data
  8.                 mov ds, ax
  9.                
  10.                 mov dh, 8
  11.                 mov dl, 3
  12.                 mov cl, 2
  13.                
  14.                 mov si, 0
  15.                 call show_str
  16.                
  17.                 mov ax, 4c00H
  18.                 int 21H
  19.                
  20.         show_str :         push ax
  21.                                 push bx
  22.                                 push cx
  23.                                 push dx
  24.                                 push si
  25.                                 push di
  26.                                 mov bx, 0
  27.                                 mov ax, 0b800H
  28.                                 mov es, ax
  29.                                 dec dh
  30.                                 mov al, dh
  31.                                 mov dh, 160
  32.                                 mul dh
  33.                                 mov bx, ax
  34.                                 mov al, dl
  35.                                 mov dl, 2
  36.                                 mul dl
  37.                                 add bx, ax
  38.                                 mov ah, cl
  39.                                 mov cl, 0
  40.                 show :  mov al, [si]
  41.                                 mov es:[bx], ax
  42.                                 mov ch, [si]
  43.                                 inc si
  44.                                 add bx, 2
  45.                                
  46.                                 jcxz ok
  47.                                
  48.                                 jmp show
  49.                         ok:        pop di
  50.                                 pop si
  51.                                 pop dx
  52.                                 pop cx
  53.                                 pop bx
  54.                                 pop ax
  55.                                 ret
  56.                                
  57. code ends
  58. end start
  59.                                
复制代码


编程二、决解除法溢出的问题
  1. assume cs: code

  2. code segment

  3. start : mov ax, 4240H
  4.                 mov dx, 000FH
  5.                 mov cx, 0AH
  6.                 call divdw
  7.                
  8.                 mov ax, 4c00H
  9.                 int 21H
  10.                
  11.         divdw : push ax
  12.                         mov ax, dx
  13.                         mov dx, 0
  14.                         div cx
  15.                         mov bx, ax
  16.                        
  17.                         pop ax
  18.                         div cx
  19.                        
  20.                         mov cx, dx
  21.                         mov dx, bx
  22.                        
  23.                         ret
  24.                        
  25. code ends
  26. end start
  27.                        
  28.                        
复制代码


编程三、数值显示
功能:将word型的数据变为十进制的字符串,字符串以0为结束符
  1. assume cs: code

  2. data segment

  3.         db 10 dup (0)
  4.        
  5. data ends

  6. code segment

  7. start : mov ax, 12666
  8.                 mov bx, data
  9.                 mov ds, bx
  10.                 mov si, 0
  11.                 call dtoc
  12.                
  13.                 mov dh, 8
  14.                 mov dl, 3
  15.                 mov cl, 2
  16.                 call show_str
  17.                
  18.                 mov ax, 4c00H
  19.                 int 21H
  20.                
  21. dtoc :  push ax  
  22.                 push bx
  23.                 push cx
  24.                 push dx
  25.                 push si
  26.                 push di
  27.                        
  28.                 mov di, 0
  29. d10 :   mov dx, 0
  30.                 mov bx, 10
  31.                 div bx  
  32.                
  33.                 add dx, 30H
  34.                 push dx
  35.                 inc di
  36.                 mov cx, ax
  37.                 jcxz d11
  38.                
  39.                 jmp d10
  40.                
  41. d11:         mov cx, di
  42. d12:         pop dx  
  43.                 mov [si], dl
  44.                 inc si
  45.                
  46.                 loop d12
  47.                
  48.                 mov dl, 0
  49.                 mov [si], dl
  50.                
  51.                
  52.                
  53.                        
  54. okay:         pop di
  55.                 pop si  
  56.                 pop dx
  57.                 pop cx
  58.                 pop bx
  59.                 pop ax
  60.                
  61.                 ret
  62.                        
  63. show_str:mov bx, 0
  64.                 mov ax, 0b800H
  65.                 mov es, ax
  66.                 dec dh
  67.                 mov al, dh
  68.                 mov dh, 160
  69.                 mul dh
  70.                 mov bx, ax
  71.                 mov al, dl
  72.                 mov dl, 2
  73.                 mul dl
  74.                 add bx, ax
  75.                 mov ah, cl
  76.                 mov cl, 0
  77. show :  mov al, [si]
  78.                 mov es:[bx], ax
  79.                 mov ch, [si]
  80.                 inc si
  81.                 add bx, 2
  82.                
  83.                 jcxz ok
  84.                                
  85.                 jmp show
  86. ok :        ret

  87. code ends
  88. end start
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 11:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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