首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

求教一个汇编的简单题目,该怎么解决

2012-04-14 
求教一个汇编的简单题目题目大概是将一个字符串存放在显存中然后输出,同时字符串有颜色。以下是我编写的代

求教一个汇编的简单题目
题目大概是将一个字符串存放在显存中然后输出,同时字符串有颜色。
以下是我编写的代码,但是总是运行不出来。后来通过debug单步执行的时候发现无论给es:【di】赋什么值,结果在内存中查看的es:[di]中的值任然没有变化。求解 。拜托了~各位。。。。
DATA SEGMENT
BUFF1 DB 'LIUFEISHIH'
BUFF2 DB 169
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,0B800H
MOV ES,AX
XOR BX,BX
MOV BL,OFFSET BUFF1
MOV SI,OFFSET BUFF2
MOV DI,00EBH
MOV CX,5
LIUFEI: MOV AL,DS:[BX]
MOV ES:[DI],AL
INC DI
MOV AL,DS:[SI]
MOV ES:[DI],AL
INC DI
INC BL
LOOP LIUFEI
MOV AX,4CH
INT 21H
CODE ENDS
END START
[color=#FF0000][/color]  
 

[解决办法]
没那么复杂吧。。。

Assembly code
;This Program Compiled Sucess by Masm 6.15assume  cs:code,ds:datadata    segment_str    db      'How are you!'data    endscode    segmentstart:        mov ax,data               ;指定DS        mov ds,ax        mov ax,0b800h             ;指定ES        mov es,ax        mov si,offset _str        ;获取字符串首地址        mov di,12*160+2*40        ;显存首地址,在12行40列        mov cx,lengthof _str      ;字符串长度        mov ah,10h                ;颜色值show:        mov al,[si]               ;开始挨个传送        mov es:[di],ax        inc si                    ;指向下一个字符        add di,2                  ;指向显存下一个位置        loop show        mov ah,4ch                ;返回DOS,楼主这里打错啦        int 21hcode    endsend     start 

热点排行