組合語言不理解這個結果

2011-04-27 10:01 pm
1. What is the value of AX when the code has executed? ___1______word1 WORD 0,1,2,3mov ebx,OFFSET word1add ebx,2mov ax,[ebx]


2. What will be the final value of ESI when the following code has executed? ____6________.dataarray SWORD 8,2,3.code mov esi,0 mov ecx,LENGTHOF arrayL1: add esi,TYPE array Loop L1
更新1:

1.請問為什麼 AX=1 ? 2. 請問為什麼 ESI=6 ? 謝謝解答!! 不知道為什麼中文字沒顯示...

更新2:

謝謝您解答,可以再問一下嗎? .data array byte 8,2,3 .code mov esi,0 mov ecx, SIZEOF array L1: add esi,TYPE array Loop L1 為什麼 esi =3 ? 謝謝您!!

回答 (1)

2011-04-28 1:25 am
✔ 最佳答案
word1 WORD 0,1,2,3mov ebx,OFFSET word1; .... 令 ebx = word1 的位址add ebx,2 ; ebx 加 2 ,BYTE:長度1,WORD :長度2
; DWORD: 長度 4 .... ..........mov ax,[ebx]; 位址 [ex=(word1 的位址+2)] =1 >> AX

;;====================================
array SWORD 8,2,3
.code mov esi,0;esi=0 mov ecx,LENGTHOF array;LENGTHOF 是元素數目 8,2,3 共三個 >> ecx=3L1: add esi,TYPE array ; TYPE 是得長度 SWORD =2(同上) >> esi=esi+2 Loop L1 ; LOOP 的 L1 , 次數是 CX 值
;
;
;所以 esi=esi+2 跑 3 次
; 是求 array 的大小嗎? 這應該是測試用,才有如此呆的寫法


收錄日期: 2021-04-23 23:10:03
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20110427000010KK03000

檢視 Wayback Machine 備份