黑___猫 发表于 2012-6-28 01:59:50

蛋疼的 实验9!!

assume cs:code,ds:data,ss:stack

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
mov ax,0b872H

mov cx,3
s3: 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
inc si
add di,2
loop s1

mov di,1
pop bx
mov al,ds:10H
inc bx

mov cx,10H
s2: mov es:,al
add di,2
loop s2

pop ax
add ax,0ah

pop cx
loop s3

mov ax,4c00H
int 21H

code ends
end start


这是小鱼老师的代码,但是我cmd里运行过后,跟本显示器上就不出现字啊,后来调试发现跟本就没写到内存0b872H处,

我也不知道是怎么回事,我是WIN7系统

yuprxk 发表于 2012-7-1 23:52:17

assume cs: codesg;, ds:datasg
datasg segment
                db        'welcome to masm!'
datasg ends
codesg segment
start:        mov ax, datasg
                mov ds, ax
                mov ax, 0b800h
                mov es, ax
               
                mov bx, 0
                mov si, bx
                mov di, bx
                mov bp, 1760                                ;0b800:1760 第12行的偏移量
                mov cx, 16
        sa:        mov al, ds:                                ;复制3行welcome to masm!到屏幕中央
                mov es:.66, al                ;66为welcome开始的33列的地址(33*2)
                mov es:.66, al
                mov es:.66, al
                inc bx
                add di, 2
                loop sa
               
                mov di, 1
                mov cx, 16
        sc:        mov byte ptr es:.66, 2h                        ;填充颜色
                mov byte ptr es:.66, 24h
                mov byte ptr es:.66, 71h
                add di, 2
                loop sc
               
                mov ax, 4c00h
                int 21h
codesg ends
end        start

3195884 发表于 2012-7-2 00:51:23

本帖最后由 3195884 于 2012-7-2 00:53 编辑

你的代码可以正常显示




页: [1]
查看完整版本: 蛋疼的 实验9!!