bitianchi 发表于 2011-10-23 13:01:37

无法显示结果

assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start : mov ax,data
    mov ds,ax
    mov ax,stack
    mov ss,ax
    mov sp,10h
   
   
    mov ax,0b872h
    mov bx,0
    mov cx,3
   s:push cx
    push ax
    push bx
    mov es,ax
   
    mov si,0
    mov di,0
    mov cx,10h
   
   s1:mov al,ds:
   mov es:,al
   add si,2
   inc di
   loop s1
   
   pop bx
   mov al,ds:
   mov di,1
   inc bx
   mov cx,10h
   
   s2:
   mov es:,al
   add si,2
   loop s2
   
   
   pop ax
   add ax,0ah
   pop cx
   loop s
   
   
   mov ax,4c00h
   int 21h
code ends
end start
   

Mr.C 发表于 2011-10-23 13:11:44

这贴子,很晕。:dizzy:

bitianchi 发表于 2011-10-23 13:32:40

Mr.C 发表于 2011-10-23 13:11 static/image/common/back.gif
这贴子,很晕。

为什么啊

tsembrace 发表于 2011-10-23 14:18:19

1、程序要实现什么?
2、编译是否通过
3、如果通过,结果如何?
4、自己的分析

bitianchi 发表于 2011-10-23 14:20:20

tsembrace 发表于 2011-10-23 14:18 static/image/common/back.gif
1、程序要实现什么?
2、编译是否通过
3、如果通过,结果如何?


就是现实welcome to the masm!用几种不同的字体颜色,我编译通过了,就是运行的时候总跳没

等雨 发表于 2011-10-23 14:35:36

本帖最后由 等雨 于 2011-10-23 14:36 编辑

你的第2个循环少了mov si,1,找到奇地址添加颜色,在s2的上面加mov si,1就好了

bitianchi 发表于 2011-10-23 14:39:13

等雨 发表于 2011-10-23 14:35 static/image/common/back.gif
你的第2个循环少了mov si,1,找到奇地址添加颜色,在s2的上面加mov si,1就好了

我这个代码粘贴的时候有点问题,我下面用的是di,我刚才发现了,改过来了,还是不对呀

等雨 发表于 2011-10-23 14:41:37

是不是运行程序的时候一闪过去了,那用模拟8086cpu的软件就看见了,我刚传到网站上

bitianchi 发表于 2011-10-23 14:42:46

等雨 发表于 2011-10-23 14:41 static/image/common/back.gif
是不是运行程序的时候一闪过去了,那用模拟8086cpu的软件就看见了,我刚传到网站上

是啊,我下一个看看去

tsembrace 发表于 2011-10-23 14:43:44

本帖最后由 tsembrace 于 2011-10-23 14:44 编辑

assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start : mov ax,data
    mov ds,ax
    mov ax,stack
    mov ss,ax
    mov sp,10h
    mov ax,0b872h
    mov bx,0
    mov cx,3
s:push cx
    push ax
    push bx
    mov es,ax
    mov si,0
    mov di,0
    mov cx,10h
s1:
    mov al,ds:
   mov es:,al
   add si,2
   inc di
   loop s1          ;第一次循环将字符值赋给指定区域
   pop bx
   mov al,ds: ;调出预设的第一行字符属性值,传给al
                      ;mov di,1          ;di=1啥意思?这句无意义,删除--------------------------
   inc bx            ;bx=2,使下次循环指向第二行的字符属性值;但这句放在s2循环结束的后面更合适一些
   mov cx,10h   
   mov si,1
s2:
   mov es:,al   ;注意此时si通过s1循环已经不是在起始位置了,所以要加上面这句-------------------
   add si,2
   loop s2
   
   
   pop ax
   add ax,0ah
   pop cx
   loop s
   
   
   mov ax,4c00h
   int 21h
code ends
end start

bitianchi 发表于 2011-10-23 14:48:44

tsembrace 发表于 2011-10-23 14:43 static/image/common/back.gif


好像是需要一个模拟8086处理器,我这个总是一闪而过,刚才那个问题我也发现了,不过改完还是一跳而过

bitianchi 发表于 2011-10-23 14:52:54

等雨 发表于 2011-10-23 14:41 static/image/common/back.gif
是不是运行程序的时候一闪过去了,那用模拟8086cpu的软件就看见了,我刚传到网站上

不好意思啊,我不太会用啊,怎么个用法

tsembrace 发表于 2011-10-23 14:56:27

本帖最后由 tsembrace 于 2011-10-23 14:58 编辑

bitianchi 发表于 2011-10-23 14:48 static/image/common/back.gif
好像是需要一个模拟8086处理器,我这个总是一闪而过,刚才那个问题我也发现了,不过改完还是一跳而过
我改后试了没问题,除了加mov si,1那句外,你上面那句mov di,1是干嘛用的?没用就删除掉~

等雨 发表于 2011-10-23 14:57:38

本帖最后由 等雨 于 2011-10-23 14:58 编辑

先解压,点icon图标注册,在点emu8086图标打开,然后用8086软件打开你的软件,运行,,可以加我qq聊944458356

killkk 发表于 2011-10-23 15:04:28

路过。。 顶一下。。。。

喜欢小新 发表于 2011-10-25 02:06:37

厉害!强~~~~没的说了!

gongheng 发表于 2011-10-25 09:49:26

10楼的厉害!!!!!
页: [1]
查看完整版本: 无法显示结果