注册 登录
编程论坛 汇编论坛

我感觉我们老师讲的不对,麻烦看一下

fenglingdihu 发布于 2010-06-09 12:45, 905 次点击
DATA SEGMENT
    M_BUFFER DW 51,99,525,341,888
    MAX DW ?
DATA ENDS
CODE SEGMENT
    ASSUME DS:DATA CS:CODE
    MOV AX,DATA
    MOV DS,AX
    LEA BX,M_BUFFER
    MOV AX,[BX]
    MOV CX,4
AGAIN:
    INC BX
    INC BX
    JGE NEXT
    MOV AX,[BX]
NEXT:LOOP AGAIN
    LEA BX,MAX
    MOV [BX],AX
    CODE ENDS
    END
    这是我们老师讲的,一个求几个数中最大值,我感觉老师的有点错误 我认为AGAIN: INC BX只要一个就够了,写两个就错了,可是老师说不对,我不理解,麻烦各位帮一下忙,是不是还有其他的错误,先谢谢各位了
3 回复
#2
ljwei2010-06-09 13:35
M_BUFFER DW 51,99,525,341,888
为字数据 所以要用两次 INC BX
好像是这样子说的......
#3
onepc2010-06-09 20:45
程序代码:
好久没看了。感觉是有问题。不过只用一个inc bx 那肯定是错的。
AGAIN:
;bx指向的是M_BUFFER DW 51,99,525,341,888 这个m_buffer 其实也就是指向51的起始位置
;
inc只是把地址加1 [bx相当于指针]

    INC BX
    INC BX ;再加1这时就已是99的起始位了。[指第一次执行时。]
    JGE NEXT ;jge这个东东忘了是什么条件跳转了。。。
    MOV AX,[BX]
NEXT:LOOP AGAIN



[ 本帖最后由 onepc 于 2010-6-9 20:49 编辑 ]
#4
onepc2010-06-09 21:00
又看了前面。已给了ax了  MOV AX,[BX]
应没错哦。
1