首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

简单数组求和,请问

2012-02-22 
简单数组求和,请教!Assembly code数组求和include io32.inc.dataarray byte 1,2,3,6msg1 byte The facto

简单数组求和,请教!

Assembly code
;数组求和include io32.inc.data    array byte 1,2,3,6    msg1 byte 'The factors of the array are: ',0ah,0dh,0    msg2 byte 'The sum of the factors is:',0.codebegin:    mov ecx,lengthof array    mov eax,offset msg1    call dispmsg    mov eax,offset array    call dispuid    xor eax,eaxagain:    add eax,array[ecx]        ;不能用变量名直接给eax做加法吗?    loop again    mov ebx,eax    mov eax,offset msg2    call dispmsg    mov eax,ebx    call dispuidexit 0end begin


如上,存储单元与寄存器之间可以add运算的吗?数组是存在主存中,为何不能直接用数组名和ecx寻址与寄存器做加法?请教!

[解决办法]
可以做add运算,但是感觉你的ecx里面的值不对,另外你这个循环的次数怎么进行的呢
[解决办法]
mem + reg 是可以的,你的代码还可以重构一下.

问题是你的array数组大小是byte类型的,你不可以直接与DWORD类型的eax相加.

你可以转换长度后再相加.
[解决办法]
2楼的意思是array 是byte,eax是dword,类型不匹配不是说ecx

热点排行