. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  请老师们帮我看下我的九章最后一个试验 有什么需要改进的  [待解决] 回复[ 2次 ]   点击[ 301次 ]  
cwandqd
[帖 主]   [ 发表时间:2010-04-04 11:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-08-02 13:24
assume cs:code,ds:data

data segment

  db 'welcome to masm!'

data ends

code segment
  start:mov ax,data
        mov ds,ax
        mov ax,0b800h       ;定义目标段
        mov es,ax           ;

        mov bx,0
        mov di,0
        mov bp,0640h        ;定义目标段偏移 因为得从11行开始写


        mov cx,16

      s:mov ah,02h                 ;绿字
        mov al,ds:[bx]             ;读第一个字
        mov es:[bp+40h+di],ax      ;写入到11行中间

        mov ah,24h                 ;绿底红字
        mov al,ds:[bx]             ;读第一个字
        mov es:[bp+0e0h+di],ax     ;写入到12行中间

        mov ah,71h                 ;白底蓝字
        mov al,ds:[bx]             ;读第一个字
        mov es:[bp+180h+di],ax     ;写入到13行中间


        add bx,1
        add di,2

        loop s


        mov ax,4c00h
        int 21h



code ends
end start

自己写的,感觉不易管理,在问下老师们,能用栈实现么?
versaariel
[第1楼]   [ 回复时间:2010-04-05 10:59 ]   [引用]   [回复]   [ top ] 
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14
不是很明白你说的用栈实现,ss取代es?,我想应该不是吧
程序结构还是很简单的
1.可以把坐标值和常量抽取出来,方便下次改动
2.对于loop s中的结构可以写成函数模块,参数传递(位置,属性)可以通过push压栈
3.不是很明白你的意思,说的不一定对^-^
cwandqd
[第2楼]   [ 回复时间:2010-04-05 11:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-08-02 13:24
谢谢楼上的。我现在还没有学到模块哪里呢,我的意思是说能否 用栈实现 loop S 中的功能 

呃,还是谢谢楼上的。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved