内转移、相对转移、段内转移、间接转移以及段间转移、直接转移、段内转移、间接转移。
8IA32处理器工作在保护方式时,可以使用
平展和
段式
存储模型。
9数据段有语句“VARDWORD99008843H”,代码段指令“MOVCXWORDPTRVAR”执行后,CX=8843H。10数据段有语句“ABCBYTE123”,代码段指令“MOVCLABC2”执行后,CL=3。
f11.已知ESI04000H,EBX10H指令“MOVEAXESIEBX28中访问的有效地址是04028H。12.假设在平展存储模型下,EBX=1256H,双字变量TABLE的偏移地址是40100H,线性地址41356H处存放40107H,执行指令“JMPEBX”后EIP=1256H,执行指令“JMPTABLEEBX”后EIP=40107H13.已知数据段定义如下dataorg2000hvarddword1234hvarwword320msgbyte’hello’’0’
1equmsgcou
tequ5bufwordcou
tdup53dup120arraydwordvarw问题1执行MOVEBXOFFSETVARD后EBX2000H2执行MOVECXTYPEBUF后ECX2MOVEDXSIZEOFVARD后EDX43经汇编后BUF占有的存储空间是80字节4经汇编后200DHN17Array2004H14执行“SHREBX4”指令后,JNC发生转移,则说明EBX的D315子程序的参数传递主要有三种,它们是寄存器传递、共享变量传递、堆栈传递三、程序阅读题1.填写下面指令的执行结果。moveax3721haddeax9EAX=372AHmovebx50hsubebx8EBX=48Hmovedi9ehxoredi7fhEDI=E1H2.填写下面指令执行的结果。moval82hmovsxbxalBXFF82hmovsxebxalEBXFFFFFF82hmovcx1000hmovsxedxcxEDX00001000h0
f3.填写下面指令执行的结果。movax20000movbl10divbl以上代码是否产生溢出是4数据段有如下定义,IA32处理器将以小端方式保存在主存:vardword12345678h现以字节为单位按地址从低到高的顺序,写出这个变量内容。并说明如下指令的执行结果:moveaxvarEAX=12345678hmovcxwordptrvar2CX=1234hmovdhbyteptrvar3DH=12h6.填写下面指令执行的结果。dataarraydword616h727h838h假设该变量的存储器地址是40100Hcodemovesiarray4ESI=727HmovedioffsetarrayEDI=40100HmovedxediEDX=616Hpusharray8array8=838HpopecxECX=838H7.分析下面程序段:moveax2000hmovebx5000hmovebx100h60haddeaxebx100hleaesiebx100hmovebxeax程序段执行后,ESI5100四、语句填空题1.下列程序段将EAX中值乘以9,请将程序填写完整。pusheaxshleax,3popebxaddeax,ebx2.以下程序段用于计算符号函数。
H,EBX
2060
H
1X0Y0X01X0
f的取值范围为32位的有符号数,试填写方框中的指令。moveax,xcmpeax,0jzzerojs
egamoveax1r