汇编语言(第3版)王爽第八章学习内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言(第3版)王爽第八章学习内容相关的知识,希望对你有一定的参考价值。

  1. 只要在[]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中。
    1. mov ax,[bp] 含义:(ax) = ((ss)*16+(bp))
    2. mov ax,[bp+idata] 含义:(ax) = ((ss)*16+(bp)+idata)
    3. mov ax,[bp+si] 含义:(ax) = ((ss)*16+(bp)+(si))
    4. mov ax,[bp+si+idata] 含义:(ax) = ((ss)*16+(si)+idata)
  2. 寻址方式:
    1. 直接寻址:
      1. 表达式: [idata]
      2. 直接根据常量寻址,在C语言中表示为arr[0]
    2. 寄存器间接寻址:
      1. 表达式:[bx]、[si]、[di]、[bp]
      2. 根据寄存器的数据寻址,在C语言中表示为arr[i]
    3. 寄存器相对寻址:
      1. 表达式:[bx+idata]、[si+idata]、[di+idata]、[bp+idata]
      2. 根据寄存器和常量寻址,在C语言中表示为arr[i+10]
    4. 基址变址寻址:
      1. 表达式:[bx+si+idata]、[bx+di+idata]、[bp+si+idata]、[bp+di+idata]
      2. 根据两个寄存器和一个常量寻址,在C语言中表示为arr[i+j+5]
  3. 要操作的数据的长度:
    1. 如果操作符两边有寄存器,以寄存器的大小确定操作的是字还是字节。
    2. 如果没有寄存器,可以自行指定:
      1. mov word ptr [2],1
      2. mov byte ptr [2],1
    3. 有些指定默认指定了访问的是字还是字节:
      1. 比如push [1000h]默认操作的是字。
  4. div指
    1.   
  1. data segment中:
    1. db(data byte)定义的是字节型数据,每1个数据占1个字节。
    2. dw(data word)定义的是字型数据,每1个数据占1个字,即2个字节。
    3. dd(data double word)定义的是双字型数据,每1个数据占2个字,即4个字节。
  2. 问题8.1
assume cs:codesg, ds:datasg
 
datasg segment
dd 100001
dw 100
dw 0
datasg ends
 
 
codesg segment
start:
mov ax,datasg
mov ds,ax
mov dx,ds:[2] ;注意高位在低位后面
mov ax,ds:[0]
div word ptr ds:[4]
mov ds:[6],ax
 
 
codesg ends
end start

 

以上是关于汇编语言(第3版)王爽第八章学习内容的主要内容,如果未能解决你的问题,请参考以下文章

《程序是怎样跑起来的》第八章

python基础学习笔记——Python基础教程(第2版 修订版)第八章(异常)

汇编语言(第3版)王爽问题7.9代码

汇编语言 王爽第三版学习笔记目录+习题解析+实验

汇编语言 王爽 第四版 课后检测点 课后实验 包括解释 持续更新~~

汇编语言(第3版)王爽试验7 寻址方式在接过话数据访问中的应用(代码+注释)