. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9 为什么不能按照指定的位置输出呢?  [待解决] 回复[ 3次 ]   点击[ 194次 ]  
514438
[帖 主]   [ 发表时间:2011-06-04 17:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-31 15:01
assume cs:code ds:data ss:stack

data segment
db 'Hi,HiHi!'
data ends

stack segment
db 10h dup(0)
stack ends

code segment
start:
        mov ax,data
        mov ds,ax
        mov ax,0b800h
        mov es,ax
        mov ax,stack
        mov ss,ax
        mov sp,2
        
        xor ax,ax
        mov ax,1600
        mov dl,20
        add ax,dx
        mov bx,ax
        
        xor ax,ax
        push 004AH
        mov cx,9
        mov si,0
        mov di,0
        pop ax
        
s:
        mov ah,ds:[di]
        mov es:[bx+si],ah
        mov es:[bx+si+1],al
        inc di
        add si,2
        loop s
        
        mov ax,4c00h
        int 21h
code ends
end start
betterpursuel
[第1楼]   [ 回复时间:2011-06-04 20:11 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2010-11-07 17:01
你的思路有些奇怪,怎么会用到异或呢? 下面是正确的通过编译的程序,你自己分析分析问题出在哪里;
;==========================================
assume cs:code,  ds:data,  ss:stack            ;这里有改动

data segment
        db  'Hi,HiHi! '
data ends

stack segment
        db 10h dup(0)
stack ends

code segment
start:
        mov ax,data
        mov ds,ax
        mov ax,0b800h
        mov es,ax
        mov ax,stack
        mov ss,ax
        mov sp,16       ; mov sp,2这句有改动

        xor ax,ax       ; 令ax=0,这句话的存在是没有意义的
        mov ax,1600
        mov dl,20
        add ax,dx
        mov bx,ax

        xor ax,ax      ; 令ax=0,这句话的存在是没有意义的
        mov ax, 004AH  ;这里有改动
        push  ax       ;这里有改动

        mov cx,9
        mov si,0
        mov di,0
        pop ax
s:
        mov ah,ds:[di]
        mov es:[bx+si],ah
        mov es:[bx+si+1],al
        inc di
        add si,2
        loop s

        mov ax,4c00h
        int 21h
code ends
end start
514438
[第2楼]   [ 回复时间:2011-06-05 18:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-31 15:01
编译通过了 为什么还是不能按照指定的位置显示啊
我想在10行20列的位置输出字符串
514438
[第3楼]   [ 回复时间:2011-06-05 18:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-31 15:01
哦 已经输出了 晕要在全屏DOS下才显示出来 直接运行程序就一闪而过了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved