|
1鱼币
关于下面这个实验5.5,循环内容里面直接用ax也行吗?不应该是用al吗? 另外:像这种有好几种编法的问题或者实验,我每次编好后看答案,发现我自己编的总是最优化的,就是编的过程比较慢,就这一题我自己大概编了有半个多小时,这种情况是好是坏啊? 实验5 编写、调试具有多个段的程序 (5)程序如下,编写code段中代码,将a段和b段中的数据依次相加,将结果存到C段中。 程序三:程序二的改进版 assume cs:code a segment db 1,2,3,4,5,6,7,8 a ends b segment db 1,2,3,4,5,6,7,8 b ends c segment db 0,0,0,0,0,0,0,0 c ends code segment start: mov ax,a mov ds,ax mov ax,b mov es,ax mov ax,c mov ss,ax mov bx,0 mov cx,8 s: mov ax,[bx] mov ss:[bx],ax mov ax,es:[bx] add ss:[bx],ax inc bx loop s mov ax,4c00h int 21h code ends end start |
最佳答案
查看完整内容
ax对于这题可以哦。不过mov ax, 这句执行完了,是内存单元的值和内存单元的值存入ax,这个因为ax是16为寄存器嘛,所以必须要考虑位数匹配,以及高位对高地址。因为这题没有al相加进位到ah的情况,所以可以直接用ax来做,这样快一点,做一次加法就能加2个字节,但是这种方法,是投机取巧的,如果有进位什么的,就不能这么做了,用al做是普遍的算法。
你程序都自己想肯定是好事啊。这样印象深刻啊。时间慢点无所谓。检查自己的方 ...
|