汇编网首页登录博客注册
hygf99的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
好友圈
文章收藏
友情链接

[2010-02-17 19:08] 《汇编语言》第九章实验9

ASSUME CS:CODE,DS:DATA,ES:HAHA
DATA   SEGMENT
       DB 'welcome to masm!'
       DB 00000010B   ;绿色
       DB 00100100B   ;绿底红色
       DB 01110001B   ;白底蓝色
DATA   ENDS

HAHA   SEGMENT
       DB 96 DUP (0)
HAHA   ENDS

CODE   SEGMENT
OK:    MOV AX,DATA
       MOV DS,AX
       MOV AX,0B870H
       MOV ES,AX    
       MOV DI,00H
       MOV BP,10H
       MOV CX,03H
S1:    MOV DX,CX         ;保存CX的值 
       MOV CX,10H        ;重新为CX赋值
S:     MOV AH,[BX]
       MOV AL,DS:[BP]
       MOV ES:[DI],AH
       MOV ES:[DI+1],AL  ;以上四句实现把字符放入显存
       INC BX
       ADD DI,02H        ;下一个字符的地址
       LOOP S
       MOV BX,00H        ;重新将BX清零
       MOV CX,DX         ;还原CX的值
       ADD DI,80H        ;为什么加80H正好是下一行呢?还没琢磨出来...
       INC BP
       LOOP S1
       MOV AH,4CH
       INT 21H
CODE   ENDS
END    OK
评论次数(4)  |  浏览次数(2067)  |  类型(汇编作业) |  收藏此文  | 

[  aaa88510   发表于  2011-03-18 18:03  ]

为什么加80H正好是下一行呢?还没琢磨出来...

路过,因为加160就是下一行,但是它是在字符串结尾处开始算的,所以是160-32=128即80h

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码