-
8086cpu alu运算时为什么要使用暂存器,不直接使用寄存器解决方案
8086cpualu运算时为什么要使用暂存器,不直接使用寄存器如图所示color='#FF8000'>------解决方案--------------------------------------------------------指令往往有中间运算结果,不用暂存器是很麻烦的,象leaeax,[edx*4+esi]、aaa、aad、aam、aas等等。
9710
热度 -
8086cpu alu演算时为什么要使用暂存器,不直接使用寄存器
8086cpualu运算时为什么要使用暂存器,不直接使用寄存器如图所示color='#FF8000'>------解决方案--------------------------------------------------------指令往往有中间运算结果,不用暂存器是很麻烦的,象leaeax,[edx*4+esi]、aaa、aad、aam、aas等等。
4951
热度 -
一段简单的代码,无法实现预想的功能
一段简单的代码,无法实现预想的功能,求助.elseif ax==IDM_BIG||ax==IDM_SMALL movzx eax,ax invoke CheckMenuRadioItem,hMenu,IDM_BIG,IDM_SMALL,eax,MF_BYCOMMAND .if ax==IDM_BIG invoke SendMessage,hWnd,WM_SETIC...
195
热度 -
宏文件添加内容报错,帮忙看看。
宏文件添加内容出错,帮忙看看。。mcalc_row_sumMARCOindex,arrayoffset,rowsize,elttypeLOCALL1pushebxpushecxpushesimoveax,indexmovebx,arrayoffsetmovecx,rowsizemulecxaddebx,eaxshrecx,(typeelttype/2)moveax,0movesi,0L1:IFID...
86
热度 -
汇编生手,对于罗云彬书中一段代码的困惑
汇编新手,对于罗云彬书中一段代码的困惑.while @dwCount lodsd lea ecx,@szBuffer1 invoke SendDlgItemMessage,hWnd,IDC_LISTBOX2,LB_GETTEXT,eax,ecx invoke lstrcat,addr@szTextBuff,addrszReturn invoke lstrca...
184
热度 -
通用寄存器的非一般用途可以混用吗
通用寄存器的特殊用途可以混用吗?我想问下EAX寄存器,一般是做累加用的。c语言for循环的反汇编++i对应的汇编是addeax,1如果这里改用EBX行吗?color='#FF8000'>------解决方案--------------------可以的吧,但要组织规划好,使用得过于随意,可能会发生混乱甚至出错。color='#FF8000'>------解决方案------------------...
298
热度 -
输出的时候为何修改了内存中的内容,该怎么解决
输出的时候为何修改了内存中的内容includeio32.inc.data sumdword1,1,0dup(28) .codestart: movecx,30 xorebx,ebx movedx,ebx movedx,1again: moveax,sum[ebx*4] incebx addeax,sum[edx*4] incedx movsum[edx*4],eax cm...
202
热度 -
弹出右键菜单的代码,有些弄不明白
弹出右键菜单的代码,有点弄不明白罗云彬win32汇编那本书,第5章,关于右键弹出菜单是如下一段代码。根据书后面的内容,我在代码上作点修改,在TrackPopupMenu函数中,我把TMP_LEFTALIGN改成TMP_RIGHTALIGH,但是在EXE文件中右键弹出的菜单还是在鼠标坐标的右侧,而并没有显现在鼠标坐标的左侧,这是为什么呢?;******************************...
168
热度 -
输出的时分为何修改了内存中的内容
输出的时候为何修改了内存中的内容includeio32.inc.data sumdword1,1,0dup(28) .codestart: movecx,30 xorebx,ebx movedx,ebx movedx,1again: moveax,sum[ebx*4] incebx addeax,sum[edx*4] incedx movsum[edx*4],eax cm...
197
热度 -
masm中资源和代码如何个链接起来啊
masm中资源和代码怎么个链接起来啊??;文件.asm;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...
8802
热度 -
学习win32汇编出现有关问题了,大婶们来帮帮小弟一上
学习win32汇编出现问题了,大婶们来帮帮小弟一下啊.386.modelflat,stdcalloptioncasemap:noneincludewindows.incincludegdi32.incincludelibgdi32.libincludekernel32.incincludelibkernel32.libincludeuser32.incincludelibuser32.lib.da...
4198
热度 -
确定一上2个非常基础的有关问题。
确定一下2个非常基础的问题。。请问一下,下面2个看法是正确的吗,我调试了很久才弄好。1,loop指令如果标记过长会编译失败。应该是短跳转吧,大小在-128到127吧。2,判断一个数的正负,在汇编里面得用sign?判断,如果用subeax,15.ifeax>0然后做某事,必然失败,因为他会编译成cmpeax,0jbexxxx,做某事,jbe是无符号的判断,所以都会成立,然后跳转。不知道我的理解...
4429
热度 -
困小弟我很久的有关问题, 问了不少人,没有结局
困我很久的问题,问了不少人,没有结局Assemblycode.386.modelflat,stdcalloptioncasemap:noneincludemasm32.incincludelibmasm32.libincludekernel32.incincludelibkernel32.libincludemsvcrt.incincludelibmsvcrt.lib.datadArraydwor...
2420
热度 -
懂Win32汇编的帮小弟我看个初学者有关问题
懂Win32汇编的帮我看个菜鸟问题函数返回值保存在eax寄存器中,遇到多线程的情况下会不会发生冲突?为什么?例如invokeCreateWindowEx,NULL,ADDRClassName,ADDRAppName,\WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\hIn...
889
热度 -
win32汇编 Edit1里面输入2006 想在Edit2输出2006?该怎么处理
win32汇编Edit1里面输入2006想在Edit2输出2006?Edit1里面输入2006获得消息我用的是:invokeGetDlgItemText,hWnd,IDC_EDIT1,addrMaxSize,sizeofMaxSizemovyear,eax把2006放到year里问题在Edit2我用的是:invokeSetDlgItemInt,hWnd,IDC_EDIT4,year,FALSE把y...
5634
热度 -
请教lea命令的具体作用
请问lea命令的具体作用我看了一下解释说的是把实际地址放到寄存器中那么下面这两句分别是什么意思呢leaebx,[esi]lea0xfffffff8(%ebp),%eaxcolor='#e78608'>------解决方案--------------------------------------------------------1.ebx=esi2.eax=ebp-8LEA本质上就是一个特殊的乘...
2055
热度 -
redhat5 linux 下汇编有关问题
redhat5linux下汇编问题#cpuid.s.section.dataoutput:.ascii"TheprocessorVendorIDis'xxxxxxxxxxxx'\n".section.text.globl_start_start:movl$0,%eaxcpuidmovl$output,%edimovl%ebx,28(%edi)movl%edx,32(%edi)m...
6572
热度 -
请教一下rep与ret连在一起是什么意思
请问一下rep与ret连在一起是什么意思?C/C++codeintsum(intn){intsum=0;for(inti=0;i<n;++i)sum+=i;returnsum;}用gcc4.6.0编译(g++-O2-S)得到的汇编代码如下:Assemblycode.p2align4,,15.globl_Z3sumi.type_Z3sumi,@function_Z3sumi:.LFB0:xor...
5898
热度 -
or al,al 这样用的目的是什么,该如何处理
oral,al这样用的目的是什么如题?oral,al最后al的值等于执行这条指令之前的值,那指令的用途是什么呢?color='#e78608'>------解决方案--------------------------------------------------------一般是看看al是否为0color='#e78608'>------解决方案-------------------------...
4575
热度 -
nasm 汇编 循环有关问题
nasm汇编循环问题想循环输出helloworld,但是为什么会是个死循环。。。。。好纠结color='#FF8000'>------解决思路----------------------不能用al作为循环计数器吧,因为16行又给eax赋值了,所以作为eax一小部分的al的计数就被破坏了。另外,如果使用其它寄存器作为计数器的话,还要考虑int80h对寄存器的破坏约定。color='#FF8000'>...
798
热度