回 帖 发 新 帖 刷新版面

主题:汇编教材例题读不懂的指令求助

小弟刚学汇编,请各位高手帮忙写一下注释,有的地方搞不懂




汇编语言程序设计
新世纪网络教材    吴向军等编著
第七章
7.3.1:例7.3 
   
按5位十进制的形式显示寄存器BX中的内容,如果BX的值小于0,则应在显示数值之前显示负号“-”。例如:(BX)=123,显示:00123;(BX)=-234,显示-00234;

SUBDATA     SEGMENT
            DB  5 DUP('0'),0AH,0DH,'$'
SUBDATA     ENDS
DISPBX      PROC
            ASSUME   DS:RUBDATA
            PUSH     DS
            PUSH     DX
            PUSH     CX    
            PUSH     AX
            MOV      AX,SUBDATA   
            MOV      DS,AX      

            CMP      BX,0    
            JGE      NEXT     
            MOV      DL,‘-’
            MOV      AH,2     
            INT      21H子  
            NEG      BX        
NEXT        MOV      SI,4     ?请各位高手帮忙指教问号处
            MOV      AX,BX     各指令的作用,为什么?请帮忙写上
            MOV      CX,10D     注释,谢谢.
AGAIN       XOR      DX,DX    ? 
            IDIV     CX         
            ADD      DL,‘0’ ?为什么要用这条指令,起什么作用
                                
            MOV      [SI],DL   ?
            DEC      SI         
            JGE      AGAIN      

            XOR      DX,DX      ?
                                
            MOV      AH,9
            INT      21H       
            POP      AX        
            POP      CX
            POP      DX
            POP      DS
            RET
DESPBX      ENDP

回复列表 (共3个回复)

沙发

我会发一帖,关于80X86 汇编指令符号大全

板凳

NEXT        MOV      SI,4     ?这里为下面的DEC SI 做准备让si 为0时跳出循环
            MOV      AX,BX     也表是循环的次数
            MOV      CX,10D     
AGAIN       XOR      DX,DX    ? 将DX清O以免只显示到第一个字符后面的是乱码
            IDIV     CX         
            ADD      DL,‘0’ ?这里的意思就是加30h将数字转为ASKII码
                                
            MOV      [SI],DL   ?

3 楼


什么时候发啊?发在哪里?我也需要,呵呵谢喽

我来回复

您尚未登录,请登录后再回复。点此登录或注册