鱼C论坛

 找回密码
 立即注册
查看: 4060|回复: 8

[争议讨论] 实验9的,精品源码!求高人指点下

[复制链接]
发表于 2011-4-13 13:14:22 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 loop 于 2011-5-19 16:23 编辑
  1. assume cs:code,ds:data,ss:stack,ds:data2

  2. data segment
  3.         db "welcome to masm!"
  4. data ends

  5. stack segment
  6.         dw 0,0,0,0
  7. stack ends

  8. data2 segment
  9.         db 02h,24h,71h
  10. data2 ends

  11. code segment

  12. start:  mov ax,0b800h       
  13.                 mov es,ax
  14.                
  15.             mov ax,stack
  16.                 mov ss,ax
  17.                 mov sp,8
  18.                
  19.                 mov di,0
  20.                 mov si,0
  21.                 mov dx,0
  22.                 mov cx,3
  23.         s2:        push cx
  24.                 mov bx,0
  25.         s:        mov ax,data
  26.                 mov ds,ax
  27.             mov cl,ds:[bx]
  28.                 mov ch,0
  29.                 jcxz s1
  30.                 mov ax,data2
  31.                 mov ds,ax
  32.                 mov ch,ds:[di]
  33.                 mov word ptr es:[si+720h],cx
  34.                 inc bx
  35.                 add si,2
  36.                 loop s
  37.                
  38.         s1:        inc di
  39.                 add bx,bx
  40.                 mov ax,160
  41.                 sub ax,bx
  42.                 add si,ax
  43.             pop cx
  44.             loop s2
  45.                
  46.             mov ax,4c00h
  47.                 int 21h
  48. code ends

  49. end start
复制代码
想要解释代码的详细意思就顶起!
看看还有什么地方可以优化没{:3_52:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-13 15:40:45 | 显示全部楼层
菜鸟,看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-5 00:27:19 | 显示全部楼层
本帖最后由 loop 于 2011-5-5 08:34 编辑

有必要这么麻烦吗?请看代码:
  1. assume cs:code
  2. data segment
  3.         db 'welcome to masm!'
  4.         db 02h,24h,71h
  5. data ends
  6. code segment
  7. start:        mov ax,data
  8.         mov ds,ax
  9.         mov ax,0b800h
  10.         mov es,ax
  11.         mov bx,0
  12.         mov si,0
  13.         mov cx,10h
  14. s:        mov al,ds:[bx]
  15.         mov ah,ds:[10h]
  16.         mov es:[si+680h],ax
  17.         mov ah,ds:[11h]
  18.         mov es:[si+7c0h],ax
  19.         mov ah,ds:[12h]
  20.         mov es:[si+900h],ax
  21.         inc bx
  22.         add si,2
  23. loop s
  24.         mov ax,4c00h
  25.         int 21h
  26. code ends
  27. end start
复制代码

评分

参与人数 1荣誉 +2 收起 理由
loop + 2 我很赞同~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-5 09:21:27 | 显示全部楼层
本帖最后由 china0008 于 2011-5-5 09:22 编辑

我的,初学时写的。

  1. assume cs:codesg,ds:datasg
  2. datasg segment
  3.    db 'Welcome to masm!'
  4. datasg ends
  5. codesg segment
  6. start:   
  7.     mov ax,datasg
  8.     mov ds,ax                 ;定义源数组段   
  9.     mov ax,0b800h
  10.     mov es,ax                 ;定义目标数组段
  11.     mov bx,0                  ;bx作为源数组地址指针
  12.     mov si,0680h              ;si作为目的操作数地址指针
  13.     mov cx,16
  14. s:  mov al,ds:[bx]            ;取源数据到al
  15.     mov ah,02h                ;显示属性送ah
  16.     mov es:[si],ax            ;字符和属性一起送目标单元
  17.     mov ah,24h                ;继续将第二行字符的显示属性送ah
  18.     mov es:[si+0140h],ax      ;调整目标地址指向第二行同时将数据送目标单元
  19.     mov ah,71h                ;第三行显示属性送ah
  20.     mov es:[si+0280h],ax      ;指向第三行同时数据送目标单元
  21.     inc bx                    ;调整源数组指针
  22.     add si,2                  ;调整目标数组指针
  23.     loop s
  24.     mov ax,4c00h
  25.     int 21h
  26. codesg ends
  27. end start
复制代码

点评

强悍啊~  发表于 2011-5-6 08:57
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-6 23:32:58 | 显示全部楼层
回复 china0008 的帖子

好不好先不说,代码很规整,呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-18 01:24:22 | 显示全部楼层
本帖最后由 sunhopp 于 2011-5-18 01:29 编辑

写起来不麻烦,就是看要求的时候吓到人啦!一堆说明!

  1. assume        cs:code,ds:data
  2. data segment
  3. db 'welcome to masm!'
  4. db 02h,24h,71h
  5. data ends
  6. code segment
  7. start:  mov ax,data
  8.           mov ds,ax
  9.           mov di,16
  10.           mov ax,0b800h
  11.           mov es,ax
  12.           mov si,0680h
  13.           mov cx,3
  14. s0:     push cx
  15.          mov bx,0                       
  16.          mov cx,16
  17. s:      mov al,[bx]
  18.          mov ah,ds:[di]
  19.          mov es:[si],ax
  20.          inc bx
  21.          add si,2
  22.          loop s
  23.          inc di
  24.          add si,0120h
  25.          pop cx
  26.          loop s0
  27. mov ax,4c00h
  28. int 21h
  29. code ends
  30. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 00:17:21 | 显示全部楼层
凑下热闹,现在已经不看汇编了,主要来看看帖子复习一下
  1. assume cs:fuck ds:data ss:stack

  2. data segment
  3.     db "welcome to masm!"
  4. data ends

  5. fuck segment
  6.     start:
  7.     mov ax,0B800h
  8.     mov ss,ax
  9.     mov sp,7d0h
  10.     mov ax,data
  11.     mov ds,ax
  12.     mov bx,0fh
  13.     mov cx,16
  14. s:  mov dh,02h
  15.     mov dl,ds:[bx]
  16.     push dx
  17.     dec bx
  18.     loop s
  19.     ;黑底绿字
  20.    
  21.     mov sp,730h
  22.     mov bx,0fh
  23.     mov cx,16
  24. s1:mov dh,24h
  25.     mov dl,ds:[bx]
  26.     push dx
  27.     dec bx
  28.     loop s1
  29.     ;绿底红字
  30.     mov sp,690h
  31.     mov bx,0fh
  32.     mov cx,16
  33. s2:mov dh,71h
  34.     mov dl,ds:[bx]
  35.     push dx
  36.     dec bx
  37.     loop s2   
  38.     mov ax,4c00h
  39.     int 21h
  40. fuck ends
  41. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 00:20:30 | 显示全部楼层
回复 Y.H 的帖子

呵呵,搞笑,你懂的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-19 00:25:29 | 显示全部楼层
回复 weixianlang 的帖子

什么意思?有什么错误请直接点出!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-19 09:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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