首页 > 编程语言 > 详细

汇编语言——王爽(02)

时间:2020-03-14 12:33:52      阅读:70      评论:0      收藏:0      [点我收藏+]

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

技术分享图片

 

 技术分享图片

 

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

技术分享图片

 

汇编语言——王爽(02)

原文:https://www.cnblogs.com/xwtstudio/p/12491216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!