|
![]() | 作者: dashan [dashan]
![]() |
登录 |
一、一个有16个字的数据区,起始地址70A0:DDF6,则这个数据区的末字单元的物理地址是多少 二、执行下面的指令后,AL中的内容是? BUF DW 1234H,5678H,0001H ;请告诉我DW的 详细 用法 MOV BX,OFFSET BUT ;还有OFFSET的用法 XLAT 三、LENGTH和SIZE的 用法 你回答时请注明题号,先谢谢了 |
地主 发表时间: 04-02-19 10:45 |
![]() | 回复: 286 [unique] ![]() |
登录 |
如果你想讨论,请先说出你的做法和想法,我们指出其中对或错。 如果你想让人帮你作题,无可奉告。 |
B1层 发表时间: 04-02-19 11:44 |
![]() | 回复: dashan [dashan] ![]() |
登录 |
题1我的做法是:16个字的长度为32字节,化为16进制为20H字节 再DDF6+20=DE16 ,70A0+DE16-2=14EB4为所求,但答案不是这样的 题2:BUF DW 1234H,5678H,0001H ;DW用于定义字变量,但它怎么能一次把三个数传给BUF呢? MOV BX ,OFFSET BUF ;请问这时BX中内容是多少 XLAT ;这个我知道用法:((BX)+(AL))送AL |
B2层 发表时间: 04-02-21 12:55 |
![]() | 回复: 286 [unique] ![]() |
登录 |
题1我的做法是:16个字的长度为32字节,化为16进制为20H字节 再DDF6+20=DE16 ,70A0+DE16-2=14EB4为所求,但答案不是这样的 前面作法都对,但70A0+DE16错了,段地址加偏址时,应该先左移一位再加。也就是应该 70A00+DE16。 题2:BUF DW 1234H,5678H,0001H ;DW用于定义字变量,但它怎么能一次把三个数传给BUF呢? MOV BX ,OFFSET BUF ;请问这时BX中内容是多少 XLAT ;这个我知道用法:((BX)+(AL))送AL BUF DW XXXX,YYYY,ZZZZ表示的意思是:XXXX,YYYY,ZZZZ以DW的形式依次存入内存中,而不是三个值都存到一个字空间中,所以整个BUF占了6个字节的空间。其中BUF指向第一个。 第二个问题是初学者最容易错的地方,字在内存中,是“数的低位存地低位,高位存高位”(引号内的话好好想想),所以BUF内的内容应该是 34 12 78 56 01 00 move bx,offset buf --->buf=1234H move bl,offset buf --->buf=34H. |
B3层 发表时间: 04-02-23 09:31 |
![]() | 回复: 286 [unique] ![]() |
登录 |
第三个题我忘了,你查书吧。 |
B4层 发表时间: 04-02-23 09:31 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号