求各位大神 给帮帮忙
本帖最后由 dps521 于 2014-2-10 16:24 编辑这段实验9的代码我实在看不出什么问题来求各位火眼精睛 给找一下问题
谢谢 assume cs:code
date segment
db 'welcome to masm!'
db 02h,21h,71h
date ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:mov ax,date
mov ds,ax ;数据段与DS挂钩
mov ax,stack
mov ss,ax ;栈段与SS挂钩
mov sp,10h ;SP栈顶为10H
mov bx,0 ;BX为0用来索引颜色
mov ax,0b872h ;将显存地址放入AX中
mov cx,3 ;设置循环3次
s:push cx ;将CX入栈保存起来
push ax ;将AX保存起来
push bx ;将BX入栈保存起来
mov es,ax ;将显存地址放入ES中
mov si,0 ;设置SI为0用来索引字符
mov di,0 ;用来索引目的地址
mov cx,10h ;循环16次
s1:
mov al,ds: ;将字符W放入AL中
mov es:,al ;将AL中的字放入目的的地址
inc si ;SI递增1用来索引下一个字符
adddi,2 ;用来索引目的地址
loop s1
mov di,1
pop bx
mov al,ds:;将颜色放入AL中
inc bx
mov cx,10h
s2:mov es:,al ;将颜色放入目的地址
add di,2 ;用来索引颜色
loop s2 ;跳向S2处循环
pop ax ;将AX的值恢复
add ax,0a0h ;AX加160跳向下一行
pop cx ;恢复CX的值 为3
loop s ;跳向S处循环
mov ax,4c00h
int 21h
code ends
end start执行完后就显示出一行 ‘welcome to masm !'来
南阿南南安南安 吴观此bug必有蹊跷!该bug若隐若现,虚无缥缈;小弟思索良久未得其解! mov ax 0a0 错了0A就行了因为 ES*16再加便宜地址 同意4楼所诉,A0太多了,+A就可以了,否则加了太多行电脑看不到!
奇怪的就是,我居然无法在虚拟机运行此程序, 四楼正解
请及时结贴!谢谢 date X
data o
{:7_154:}汇编还没学,咋一看,以上词打错了吧?? 我是来学习的。
页:
[1]