鱼C论坛

 找回密码
 立即注册
查看: 4932|回复: 11

给下1+2+3+4.。。+100 用汇编怎么写吧

[复制链接]
发表于 2011-9-18 13:32:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我试试着做个就是1+2+3+。。。+100=?请各位大大给个写的,让我 看下,我写的怎么都感觉不太对的样子。还有就是怎么查看结果。就是加到100时等于多少,让我一下查到,就知道写错了没有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-18 13:53:27 | 显示全部楼层
把你写的拿出来看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-18 13:59:50 | 显示全部楼层
>>就是怎么查看结果。让我一下查到,就知道写错了没有。
debug有一个g指令可以让程序执行到你想要的地方停下来
先用u(直接回车),可以查看程序中指令的ip,
然後用g <你想停下来的指令的ip>

假设u的结果如下 (只是举例,cs,ip数值以实际为准)  
0bbf:0010   
0bbf:0012   mov ax,4c00H             <---计算完毕,准备返回DOS了

输入g 12 (回车)
程序就直接执行到ip为0012处的地方停下

>>我写的怎么都感觉不太对的样子
1加到100结果以16进制表示为13BAh,10进制是5050.

1加到100需要什麽? 新结果=旧结果+变数 这样的指令循环100次
(1=0+1, 3=1+2, 6=3+3....5050=4950+100)
提示:可以用cx寄存器存循环次数,每次循环把数字加到ax寄存器.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-18 15:22:25 | 显示全部楼层
assume cs:codecs,ds:num

num segment
dw 0
num ends

codecs segment

start:
mov ax,num
mov ds,ax

mov bx,1
mov cx,100

s:
add num:0,bx
inc bx
loop s

mov ax,4c00H
int 21H

codecs ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-18 15:23:04 | 显示全部楼层
(num:0) = 5050
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-19 14:04:46 | 显示全部楼层
看不明白啊,还有那么多东西,不过我想这几天就能看的明白,谢谢上面的大大。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-19 20:23:02 | 显示全部楼层
本帖最后由 lsgo 于 2011-9-19 20:25 编辑
assume cs:codesg

codesg segment

        mov ax,0       // AX = 0
        mov bx,1       // BX = 1
        mov cx,100    // CX = 100 《循环次数为100 如果 AX=1 BX=2 则循环次数为99》

      s:add ax,bx       //AX = AX + bx   也就是 AX = 0 + 1
        inc bx          //BX = BX + 1            BX = 1 + 1
        loop s          //跳转至 ADD AX,BX 处进行循环 循环次数为 CX 中的值

        mov ax,4c00h    //当 CX = 0 时跳转至此 AX=13BA 十进制为 5050 也就是1+2+3..+100的和
        int 21h

codesg ends

end
//表达能力有限 带来的不便请见谅 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-20 13:48:01 | 显示全部楼层
谢谢。我会好好看的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-20 17:11:36 | 显示全部楼层
自己动手写一下。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-29 09:24:04 | 显示全部楼层
回头去试试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-29 10:09:25 | 显示全部楼层
assume cs:code
code segment
start: mov ax,0
       mov bx,1
    mov cx,100
s:    add ax,bx
      inc bx
   loop s
   
   mov ax,4c00h
   int 21h
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-29 11:01:52 | 显示全部楼层
如果这个程序写完,用debug来调试的话, 要按--t 100次啊 那不累死了啊。有个软件就直接得出结果的。 如果非要加的话,就改成10次吧,这样好点吧。反正道理都是一样的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 22:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表