960050023 发表于 2012-6-7 15:22:58

实验十的第一个程序

本帖最后由 960050023 于 2012-6-7 15:26 编辑

assume cs:code,ds:data,ss:stack
stack segment
dw 0
stack ends
data segment
db 'welcome to masm!',0
data ends
code segment
start: mov ax,stack
       mov ss,ax
    mov sp,2h
       mov ax,data
       mov ds,ax
    mov si,0
    mov di,0
    call show_str
    mov ax,4c00h
    int 21h
   
show_str: mov es:b800h
          mov cx,14
    push cx
s:   mov cx,
       jcxz s0
    mov bx,
    mov es:,bx
    inc di
    mov bx,2h
    mov es:,bx
    inc si
    pop cx
loop s

s0:ret
code ends
end start

1;程序有什么错误
2:貌似数据不能直接传给内存单元,内存单元之间也不能直接传数据,是不?

静雨纷纷 发表于 2012-6-7 17:01:32

从show-str到loop s···
mov ax,0b800h
mov es,ax
mov cx 15
然后下面···
s:push cx    标号好像应该在这吧 啊
mov cx,
jcxz s0
mov bx,
mov es:,bx    你从ds中取数据用的就是si···那你这还用si ··有点不好吧
mov bx,2h
mov es:,bx8行3列··好像是 160x8+6吧
inc si
inc di
inc di
pop cx
loop s
好吧···就当你程序写的对的话···你回头看看·实验10.1的题目··
你这个程序好像不符合题目的意思的吧·····
我也是新手   能看出来的就这么多了····
呵呵···加油吧···

静雨纷纷 发表于 2012-6-7 17:05:44

数据应该能直接传给内存单元吧····mov word ptr ds:【2】,0····是对的·····

960050023 发表于 2012-6-8 11:15:40

静雨纷纷 发表于 2012-6-7 17:01 static/image/common/back.gif
从show-str到loop s···
mov ax,0b800h
mov es,ax


谢啦   我回去看看
页: [1]
查看完整版本: 实验十的第一个程序