
急,汇编语言中OFFSET的一个用法,请指教。
TABLEDW1,2,3,4,5,6ENTRYEQU3CNTEQU$-TABMOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,WORDPTR[BX]MO...
TABLE DW 1,2,3,4,5,6
ENTRY EQU 3
CNT EQU $-TAB
MOV BX,OFFSET TABLE
ADD BX,ENTRY
MOV AX,WORD PTR [BX]
MOV BX,CNT
最后AX=0300H,为什么啊 展开
ENTRY EQU 3
CNT EQU $-TAB
MOV BX,OFFSET TABLE
ADD BX,ENTRY
MOV AX,WORD PTR [BX]
MOV BX,CNT
最后AX=0300H,为什么啊 展开
3个回答
展开全部
offset 是取得当前标号data1的偏移地址,即(BX)=TABLE的偏移地址。
TABLE DW 1,2,3,4,5,6 ;即 TABLE的偏移地址开始的内存单元数据为:01 00 02 00 03 00 04 00......
ENTRY EQU 3;ENTRY=3
...
MOV BX,OFFSET TABLE ;(BX)=TABLE的偏移地址
ADD BX,ENTRY;(BX)=TABLE的偏移地址+3
MOV AX,WORD PTR [BX];(AX)=从TABLE的偏移地址+3位置开始的两个字节;即 内存单元中的00 03,00为低字节,03为高字节,即AX=0300H。
TABLE DW 1,2,3,4,5,6 ;即 TABLE的偏移地址开始的内存单元数据为:01 00 02 00 03 00 04 00......
ENTRY EQU 3;ENTRY=3
...
MOV BX,OFFSET TABLE ;(BX)=TABLE的偏移地址
ADD BX,ENTRY;(BX)=TABLE的偏移地址+3
MOV AX,WORD PTR [BX];(AX)=从TABLE的偏移地址+3位置开始的两个字节;即 内存单元中的00 03,00为低字节,03为高字节,即AX=0300H。
展开全部
是AX=0300H,对。
前面的DW123456,实际上是定义了如下的数据:
01
00
02
00
03
00
04
00
05
00
06
00
从开始处第三个字节,取出两个字节到AX,AX中就是0300H。
前面的DW123456,实际上是定义了如下的数据:
01
00
02
00
03
00
04
00
05
00
06
00
从开始处第三个字节,取出两个字节到AX,AX中就是0300H。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
TABLE DW 1,2,3,4,5,6
ENTRY EQU 3
CNT EQU $-TAB
MOV BX,OFFSET TABLE OFFSET 是返回TABLE偏移地址,(BX)=0000H
ADD BX,ENTRY (BX)=(BX)+(ENTRY )=0003H
MOV AX,WORD PTR [BX]
MOV BX,CNT ;
ENTRY EQU 3
CNT EQU $-TAB
MOV BX,OFFSET TABLE OFFSET 是返回TABLE偏移地址,(BX)=0000H
ADD BX,ENTRY (BX)=(BX)+(ENTRY )=0003H
MOV AX,WORD PTR [BX]
MOV BX,CNT ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询