. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于实验9,求助大神  [待解决] 回复[ 5次 ]   点击[ 336次 ]  
devil_xujiali
[帖 主]   [ 发表时间:2011-05-08 20:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-08 20:17
我这个代码为什么不行啊?!


assume cs:code,ds:data

data segment
  db 'welcome to masm!'
data ends

code segment
start:mov ax,data
      mov ds,ax
      mov ax,0b800h
      mov ss,ax
      mov bx,0
      mov bp,06e0h    ;貌似问题出在这一行,但是为什么呢??
      mov si,40h
      mov cx,16
    s:mov al,[bx]
      mov [bp+si],al
      mov [bp+si+0a0h],al
      mov [bp+si+140h],al
      mov al,02h
      mov [bp+si+1],al
      mov al,24h
      mov [bp+si+0a1h],al
      mov al,71h
      mov [bp+si+141h],al
      add si,2
      inc bx
      loop s
      mov ax,4c00h
      int 21h
code ends
end start
dallas48
[第1楼]   [ 回复时间:2011-05-27 11:23 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2011-01-06 10:33
assume cs:code,ds:data 

data segment 
  db 'welcome to masm!' 
data ends 

code segment 
start:mov ax,data 
      mov ds,ax 
      mov ax,0b800h          
      mov es,ax 
          
      mov bx,0 
      mov bp,6e0h   
      mov si,40h 
          
      mov cx,16 
          
    s:mov al,[bx] 
      mov es:[bp+si],al 
      mov es:[bp+si+0a0h],al 
      mov es:[bp+si+140h],al 
      mov al,02h 
      mov es:[bp+si+1],al 
      mov al,24h 
      mov es:[bp+si+0a1h],al 
      mov al,71h 
      mov es:[bp+si+141h],al 
      add si,2 
      inc bx 
      loop s 
          
      mov ax,4c00h 
      int 21h 
code ends 
end start
dallas48
[第2楼]   [ 回复时间:2011-05-27 11:32 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2011-01-06 10:33
mov bp,6e0h    ;貌似问题出在这一行,但是为什么呢?? 

 应该是没错,你看不到而已

 你可以改为720h,严格按书本来写也是720h而不是6e0h
rotapple
[第3楼]   [ 回复时间:2011-06-07 22:26 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:6
注册日期:2011-06-01 16:20
注意,不显式写上段寄存器的话bp默认在ss段寻址
ally
[第4楼]   [ 回复时间:2011-09-06 11:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-04-08 10:21
这是我的程序
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 di,0
              mov si,0
              mov cx,16
           s: mov al,[si]
              mov ah,02h
              mov es:[728h+di],ax
              mov ah,24h
              mov es:[7c8h+di],ax
              mov ah,71h
              mov es:[868h+di],ax
              inc si
              add di,2
              loop s
           

              mov ax,4c00h
              int 21h
codesg ends
end start
rickystudio
[第5楼]   [ 回复时间:2011-10-01 17:44 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-09-11 00:23
assume cs:codesg, ds:datasg, ss:stack

datasg segment
  db 'welcome to masm!'
  db 02h,24h,71h
datasg ends

stack segment
  dw 8 dup(0)
stack ends

codesg segment

start:  mov ax,datasg
             mov ds,ax
        mov ax,stack
        mov ss,ax
        mov sp,10h
        mov bx,0
        mov ax,0b872h       
        mov es,ax
        mov cx,3
        mov si,16

    s0:        push cx        
        push si
        mov si,0
        mov di,0
        mov cx,16
        
    s1: mov al,[si]
        mov es:[bx+di],al
        add si,1
        add di,2
        loop s1

        mov di,1
        mov cx,16
        pop si
    s2: mov al,[si]
        mov es:[bx+di],al
        add di,2
        loop s2

        pop cx
        add bx,160
        add si,1
        loop s0

        mov ax,004ch
        int 21h

codesg ends

end start
小弟花了2天时间写的。。。
有不对的地方往指教。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved