汇编rep+movw
答:MOVW:将DS:SI的内容送至ES:DI,是复制过去,原来的代码还在。很多书用了“移”这个字,实际上是复制过去。Linux内核中引导部分一开始有这样一段代码:45 entry start ! 告知连接程序,程序从start 标号开始执行。46 start:47 mov ax,#BOOTSEG ! 将ds 段寄存器置为0×7C0;48 mov ds,ax49 m...
答:1、si,di的自增是很显然的。2、movw没错,mov之后的w代表在复制时的单位:字(word)。3、jmp是段内跳转指令,而jmpi是段间跳转指令,所以需要提供段地址(第二个操作数)。即jmpi的第一个操作数是段内偏移地址;第二个是跳转到的段地址。
网友评论:
麻任18139811261:
linux内核的艺术 - 汇编 - rep movw什么意思呢 -
51328段油
: 下面的资料应该可以解答你的疑问,请参考http://blog.donews.com/huqingyu/archive/2005/02/19/281058.aspx MOVW:将DS:SI的内容送至ES:DI,是复制过去,原来的代码还在.很多书用了“移”这个字,实际上是复制过去.Linux内核中引导...
麻任18139811261:
急!微机问题(汇编语言) -
51328段油
: 以下均为要传送的数据的源地址在ds段的情况 直接寻址 mov ax,[5000h] mov [6000h],ax(因为是和ax传参,所以已经默认了是传送一个字,默认的段地址即为ds) 寄存器间址 mov si,5000h mov di,6000h mov ax,[si] mov [di],ax 变址寻址 这个应该...
麻任18139811261:
汇编语言,movw (%eax),%dx.源操作数是内存里的,是1个字节,不应该是movb吗 -
51328段油
: 发现有点答非所问了,重新回答一下. 内存中实际上是一些连续的储存单元,其中每字节存放的要不就是0,要不就是非0数字,我们取数字时,实际上是从指定地址开始,取出指定长度的相连的字节数.尽管已知某地址是1个字节,如果将指针设为word ptr 或 dword ptr ,则依然能取出数字,只不过除已知的那一字节外,高位部分(按intel的cpu是低位在前高位在后)的字节则可能是意料之外的数. 如果那地址是你声明的连续的字节型常量区,则它改为取整数型数据,则是按自己的意图可控地取出需要的数据.
麻任18139811261:
汇编语言中所有寄存器的作用 -
51328段油
: 寄存器有点多,介绍常用的,通用寄存器8个,EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,最后+eip+EFL; eax多用于计算,函数的返回值等; ecx多用于计数(count),比如循环中的那个计数,结合eax,ESI,edi. ebp用于堆栈指针追踪,指低(...
麻任18139811261:
8088简单汇编指令 -
51328段油
: 下面的有些不是8088的指令集...但基本都是相通的... 一、数据传送指令1.通用数据传送指令MOV(Move)传送PUSH(Push onto the stack)进栈POP(Pop from the stack)出栈XCHG(Exchange)交换.MOV指令格式为: MOV DST,SRC执行...
麻任18139811261:
请问下汇编中,数据传送指令和串传送指令的区别 -
51328段油
: dat1 db 31h,32h,33h .... ;200个字节 dat2 db 200dup(?) std lea si,dat1+99 lea di,dat2+99 mov cx,100 rep movsb
麻任18139811261:
汇编语言求助
51328段油
:MOV AX,SEG AREA1MOV DS,AX ;数据段初始化,把SEG AREA1段的段地址赋给DSMOV AX,SEG AREA2 MOV ES,AX;附加段初始化,把SEG AREA2段的段地址赋给ES MOV SI,OFFSET AREA1 ;把AREA1的偏移地址赋给SI, (...
麻任18139811261:
用其他指令完成和rep movsw一样的功能 -
51328段油
: 我也不会,你自己来吧.rep的转换:每次执行的时候先执行cx=cx-1然后判断cx是否为0,如果是0说明REP MOVSW这个指令执行完毕了,直接跳转执行REP MOVSW的下一行语句,如果不为0,执行movsw也就是数据转移一次.movsw的转换:每一次执行都是si传送到di然后si=si+2,di=di+2(DF=0)或者si=si-2,di=di-2(DF=1).(DF是标志位,在这里决定传送方向) 参考资料: http://zhidao.baidu.com/question/65122281.html
麻任18139811261:
汇编编程的~难啊啊 -
51328段油
: 1:MOV BX,OFFSET ARRAY MOV AL,[BX+7] NOT AL ADD AL,1 MOV [BX+7],AL2:MOV AL,BUF ADD AL,BUF+1 MOV SUM,AL3:没搞懂你的意思4:源,目标区没有重叠 MOV AX,SEG BUF1 MOV DS,AX MOV AX,SEG BUF...
麻任18139811261:
几个汇编语言问题.高手帮忙解答下..
51328段油
: 1.MOV [SI],'A'; 有错,应该指定内存的属性为字节,改为MOV BYTE PTR [SI],'A' 2.MOV AL,BX;有错,类型不匹配,AL为8位,BX为16位 3.MOV BL,SI+2;有错,应该改为MOV BL,[SI+2] 4.INC [BX];正确 5.MOV 256,AL;有错,立即数256不...