天天看点

汇编语言实验1

实验任务2

汇编语言实验1

   实验结果:1)-d命令用来查看某一区域的内存使用情况,段基址为ffff,乘以16之后就是ffff0,再加上偏移地址就是最后查看的地址

  

汇编语言实验1

   2)先查看生产日期内存区域

     

汇编语言实验1

    尝试进行修改

    

汇编语言实验1

     再次查看,修改无效,说明这块区域只能读,不能写

汇编语言实验1

实验任务3

汇编语言实验1

 1)-e b800:0 03 04 03 04 03 04 03 04 03 04  

汇编语言实验1

2)-f  b800:0f00 0f9f 03 04 对某一段内存进行批量修改

汇编语言实验1
汇编语言实验1

3) 尝试进行对内存进行修改  

汇编语言实验1

实验任务4

汇编语言实验1

  当执行完mov sp,30之后,ss:sp指向栈底0020:0030,每执行一次push,sp就减2。

  每执行完一次pop,sp就+2。

答案1:栈顶的逻辑地址为0020:0030,因为此时栈为空,这时栈顶和栈底重合,物理地址为00230

答案2:每次push放入的是字形数据,20位于栈底,所以放入的是1020,再放入3040

汇编语言实验1

答案3:没有变化

   

汇编语言实验1

 答案4:

汇编语言实验1

实验任务5 

 答案1:当执行完mov ss,ax之后sp的值也改变了,说明这两条指令并不会分步执行,而是会一起执行

 答案2:t命令使cpu中断,但是编译器要知道下面命令的地址,于是在栈中存放了下一条命令的地址。

实验任务6

汇编语言实验1
汇编语言实验1
汇编语言实验1
汇编语言实验1
汇编语言实验1

实验任务7

答案1: 第一空填cs,要把程序段的入口放在ds段基址寄存器中后面就能根据偏移地址复制

    第二空填cx,是程序的长度

没有操作数的指令,指令长度为1个字节

操作数只涉及寄存器的的指令,指令长度为2个字节,如:mov bx,ax

操作数涉及内存地址的指令,指令长度为3个字节,如:mov ax,ds:[bx+si+idata]

操作数涉及立即数的指令,指令长度为:寄存器类型+1。 8位寄存器,寄存器类型=1,如:mov al,8;指令长度为2个字节。 16位寄存器,寄存器类型=2,如:mov ax,8;指令长度为3个字节

CS为代码起始段地址

汇编语言实验1