从存在于装配中另一段中的矩阵单元中读取

时间:2019-06-13 13:55:37

标签: assembly x86

让我说我的段在es中,矩阵地址的偏移量在bx中(换句话说=> es:bx =(long int ** matrix)),我怎么能得到matrix [0例如[0]

我正在使用。大模型

我尝试这样做:

mov eax,dword ptr es:bx[0][0] 

这:

mov bx,dword ptr es:bx[0] 

mov eax, dword ptr es:bx[0]

1 个答案:

答案 0 :(得分:0)

这解决了问题

 mov bx,word ptr [bp+10]  ; bx = offset matrix
 mov es,word ptr [bp+12]  ; es = segment matrix
 add bx,row               ; get to the right row
 mov si,word ptr es:bx[0] ; si = offset of matrix[row]
 mov es,word ptr es:bx[2] ; es = segment of matrix[row]
 add si,col               ; to get to the right cell
 add eax,dword ptr [es:si] 

row =行号* 4
col =列号* 4