. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9运行下写好的文件,为什么闪下就没了  [待解决] 回复[ 1次 ]   点击[ 187次 ]  
6190201
[帖 主]   [ 发表时间:2011-10-17 02:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-31 21:07
实验九运行下写好的文件,在命令符界面下为什么运行下就没了,根本看不到效果,我看的小甲鱼的视频,抄了他的代码,为什么他的就能运行?
代码如下:
assume cs:code,ds:data,ss:stack       ;详细见视频47

data segment
        db 'welcome to masm!'  
        db 02h,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    ;指向栈顶
                        
                        xor bx,bx                                ;bx清零,用来索引颜色
                        mov ax,0b872h    ;算出屏幕第12行中间的显存的段起始位置放入ax中 ,16位数前要加0        
                        
                        mov cx,3
        s3:        push cx  ;输出3行
                        push ax  ;每行首地址
                        push bx                ;储存颜色
                        
                        mov es,ax
                        
                        mov si,0
                        mov di,0
                        
                        mov cx,10h
                        
        s1: mov al,ds:[si]
                        mov es:[di],al
                        inc si
                        add di,2
                        loop s1
                        
                        mov di,1
                        pop bx
                        mov al,ds:10h[bx]  ;取出每行颜色
                        inc bx
                                        
                        mov cx,10h
        s2: mov es:[di],al
                        add di,2
                        loop s2                
                        
                        pop ax
                        add ax,0ah
                        
                        pop cx   ;恢复循环中储存的数据cx
                        loop s3        
                        
                        mov ax,4c00h
                        int 21h
code ends
end start
hai1222
[第1楼]   [ 回复时间:2011-10-17 22:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-11 19:38
DEBUG程序后,直接G到mov ax,4c00h就能看到结果
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved