. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->更灵活的定位内存地址的方法
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  问题7.9,请高手指点:  [待解决] 回复[ 5次 ]   点击[ 580次 ]  
caoheqian
[帖 主]   [ 发表时间:2007-10-31 20:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
assume cs:codesg,ss:stacksg,ds:datasg
  stacksg segment
    dw 0,0,0,0,0,0,0,0
  stacksg ends

  datasg segment
    db '1. display      '
    db '2. brows        '
    db '3. replace      '
    db '4. modify       '
  datasg ends      
  codesg segment 
    start:
      mov ax,datasg
      mov ds,ax
      mov ax,stacksg
      mov ss,ax
      mov sp,16
      mov bx,0
      mov cx,4
    s0:
      push cx
      mov si,0
      mov cx,4
      s:
        mov al,[bx+si+3]
        and al,11011111b
        mov [bx+si+3],al
        inc si
      loop s
    add bx,16
    pop cx
    loop s0


    mov ax,4c00h  
    int 21h  
  codesg ends  
end start
happy
[第1楼]   [ 回复时间:2007-11-01 09:28 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06
很好,没问题。
cook702
[第2楼]   [ 回复时间:2007-11-01 10:37 ]   [引用]   [回复]   [ top ] 
荣誉值:40
信誉值:2
注册日期:2007-06-26 11:53
楼主肯定是经过调试的。支持一下!
heshen75
[第3楼]   [ 回复时间:2007-11-08 18:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-29 20:49
不错
shanguianti
[第4楼]   [ 回复时间:2007-11-14 16:19 ]   [引用]   [回复]   [ top ] 
荣誉值:19
信誉值:0
注册日期:2007-10-31 16:24
楼主的程序完全正确!其实这道题可以直接采用mov si,3,然后后面偏移量就用[bx+si]两个变量表示。
feilong2008
[第5楼]   [ 回复时间:2007-11-22 09:07 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-11-12 12:37
我的代码. 和楼主还是有很大的差距呀

           ASSUME    CS:CODESG,SS:STACKSG,DS:DATASG
     STACKSG  SEGMENT
              DW        0,0,0,0,0,0,0,0
     STACKSG  ENDS
      DATASG  SEGMENT
              DB        '1. display      '
              DB        '2. brows        '
              DB        '3. replace      '
              DB        '4. modify       '
      DATASG  ENDS
      CODESG  SEGMENT
      START:
;add my code
              MOV       AX,STACKSG
              MOV       SS,AX
              MOV       SP,8
              MOV       AX,DATASG
              MOV       DS,AX
              MOV       CX,4
              MOV       BX,0
         S1:
              PUSH      CX
              ;PUSH      BX 不需要
              MOV       CX,4
              MOV       AH,0

         S2:  MOV       SI,3
              MOV       AH,[BX+SI]
             ; OR        AH,11011111B
              AND       AH,11011111B
              MOV       [BX+SI],AH
              INC       SI
              LOOP      S2
              ;POP       BX
              POP       CX
              ADD       BX,10H
              LOOP      S1
              MOV       AX,4C00H
              INT       21H


      CODESG  ENDS
              END       START
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved