|
主题 : : 实验9 为什么不能按照指定的位置输出呢? [待解决] |
回复[ 3次 ]
点击[ 194次 ] | |
|
|
|
|
[帖 主]
[ 发表时间: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 | | |
|
|
|
|
[第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 | | |
|
|
|
|
[第2楼]
[ 回复时间:2011-06-05 18:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-31 15:01 |
编译通过了 为什么还是不能按照指定的位置显示啊
我想在10行20列的位置输出字符串 | | |
|
|
|
|
[第3楼]
[ 回复时间:2011-06-05 18:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-05-31 15:01 |
哦 已经输出了 晕要在全屏DOS下才显示出来 直接运行程序就一闪而过了 | | |
|