汇编语言笔记实验4[bx]和loop的使用

汇编语言笔记实验4[bx]和loop的使用

0x00 实验一

QQ截图20200530092747

assume cs:codesg
codesg segment
		mov ax,20h
		mov ds,ax
		mov bx,0
		mov cx,40h
s:		mov ds:[bx],bx
		inc bx
		loop s
		
		mov ax,4c00h
		int 21h
codesg ends
end
		

​ 实验结果如下,实验成功

QQ截图20200530093435

0x01 实验二

QQ截图20200530093548

​ 完成实验一的代码已经满足了实验二的要求,完成跳过

0x02 实验三

QQ截图20200530093734

​ 将指令复制和将数据复制本质都是从内存复制没区别 程序被装入内存时 cs指向 代码段,ip通常为0,所以时从cs:0 ->20:0 所以根据代码 第一空应该填 cs 复制长度cx是多少? 取决于指令长度,题目要求 mov ax,4c00h以前的都复制,那么我们先随意填一个数在第二空,编译完成后用debug查看指令长度,然后再修改。 实际上是23字节(如果你对汇编对应的机器指令熟悉,也可以计算出来)

​ 实验步骤

​ 1先随便填一个长度把代码补全

QQ截图20200530094554

​ 2编译链接调试 查看代码到mov ax,4c00h的长度,该指令的地址是18h也就是之前的指令到17h截至,那么长度是17h 也就是23

QQ截图20200530094547