回 帖 发 新 帖 刷新版面

主题:[讨论]汇编语言问题,请赐教!

[第1帖] 

DATA SEGMENT 
NUMX DB 01H,12H,23H,00H
NUMY DW 10H,12H,13H,14H
     DB $-NUMY
     DB 100H DUP(1,2,3)
DATA ENDS
     :
     :
     MOV BX,[06H]
     AND BX,0FFH
     ADD BX,[BX]
试问上述指令序列执行后,(BX)=?
此题的疑问是:1,MOV BX,[06H]是把06H赋给BX,还是把地址是06H的内容赋给BX?BX的最后结果到底是多少?

2.   org 100h
data1 dw 0f345h,1000h
data2 dw 1045h,2000h
     :
     :
      mov bx,offset data1
      lea si,data2
      mov ax,2[bx]
      add ax,2[si]
      mov data2,ax
   试问上述指令序列执行后,(DATA1)=?(DATA2+1)=?(BX)=?(SI)=?
我把此题编成了一个上机题目,然后上机调试,用DEBUG中的T命令执行到add ax,2[si]后,ax的值仍是0000,
另外如果要在显示器上显示data2中的内容,汇编语言该如何表示?
data segment
     org 100h
data1 dw 0f345h,1000h
data2 dw 1045h,2000h
data ends
code  segment
assume cs:code,ds:data
start: mov bx,offset data1
       lea si,data2
       mov ax,2[bx]
       add ax,2[si]
       mov data2,ax
       mov ah,4ch
       int 21h
       code ends
end start

 

回复列表 (共1个回复)

沙发

1、是把06H的地址赋给BX,是多少,你这段程序看不出来!

我来回复

您尚未登录,请登录后再回复。点此登录或注册