汇编语言——王爽(02)

debug中跟踪用loop指令实现的循环====计算ffff:0006 单元中的数*3 ,结果存储在dx中

assume cs:code

code   segment
    mov ax,0ffffh  ; 汇编程序中数据不能以字母开头
    mov ds,ax
    mov bx,6    ;ds:bx 指向ffff:6
    
    mov al,[bx]
    mov ah,0    ;设置(a1) = ((ds*16)+(bx)),(ah)=0
    mov dx,0    ;累加器清零 

          
    mov cx,3    ;循环三次
   s:add dx,ax
    loop s     ;累加计算(ax)*3
    mov ax,4c00h
    int 21h    ; 程序返回 code ends end

 

    上面代码不能直接运行,带有中文输入法的TAB按键

 

调试过程:

1、masm p3.asm

2、link p3

3、debug p3.exe

4、t 单步运行

5、u 查看相应地址中的汇编指令

6、int21 指令要使用 P命令执行,才会显示最终结果

 

// 跳过程序  debug G

g + 要跳转的偏移地址,就可以对循环进行跟踪

遇到LOOP命令可以使用P命令跳出循环 同样可以使用 g+0016直接跳出

DOS 与 masm 编译器对------------------------mov al,[0];有这不同的解释

       解决方法-----------------------mov al,ds:[0]或者 mov al,[bl]  

 

loop 与 [bx]的联合应用

 

 

 

 第6章  包含多个段的程序

 

 指明程序入口:start ‘’‘’‘’‘’‘’end start

 

 

 

 代码段中使用栈:实现逆序存放

 

posted @ 2020-03-14 11:37  三字经  阅读(181)  评论(0编辑  收藏  举报