call指令 操作 将当前的ip或cs压入栈中 转移 这里的转移与jmp相同,也有位移和内存两种方式 根据位移call 标号(将ip压入栈中后,转移到标号处进行指令)过程: sp+=2,ss*16+sp=ip ip=ip+16位位移 16位位移=标号处地址-call指令后第一个字节的地址 相当于 push ip,jmp near ptr 标号 根据目的地址call far ptr 实现段间转移 操作: 2020-01-27 汇编
debug和源程序对指令的不同处理 []debug程序中[0]表示 ds:0处的数据进行处理 而源程序中表示把0这个数据给要处理的数据 例 mov ax,[0]在debug中表示把ds:0处元素给ax,而在源程序中表示把0给ax 在程序中,可以直接使用段寄存器加偏移地址来确定访问的元素,例如:ds:[bx],cs:[bx],ss:[bx]等 2020-01-22 汇编
c++输出16进制,10进制和2进制 hex是输出16进制,例如cout<<hex<<18<<endl; dec十进制 另外这两种用了之后后面输出一直是这种进制,如果用了hex之后想要用十进制要写dec 二进制bitset bitset有头文件 <bitset> 使用方法 bitset(数字),其中8的含义是要输处几位二进制数,所以如果用int型是32,如果想把字符型转换就直接写8 2020-02-22 基础
[bx]和loop [bx]mov ax,[bx] 这个的意思是把ds:bx处的内容放入ax中 mov [bx],ax 这个的意思是把ax中的内容放入 地址ds:bx处 [bx+idata]实际上还有更加灵活的方式指明内存地址,就是bx后加一个数据,这个数据可以是常数,也可以是变量 例 mov ax,ds:[bx+200],也可以直接写为ds:200[bx] 这种处理方式可以方便的处理数组 loop格式:loop+标 2020-01-21