汇编语言——王爽(02)

摘要:
由循环指令实现的循环在调试中被跟踪==计算ffff:0006单元中的数字*3,并将结果存储在dx-assumecs:codecode段movax,0fffh中;汇编程序中的数据不能以字母movds,ax-movbx,6开头;Ds:bx指向ffff:6 moval,[bx]movah,0;集合(a1)=((ds*16)

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]的联合应用

汇编语言——王爽(02)第1张

汇编语言——王爽(02)第2张

 第6章  包含多个段的程序

汇编语言——王爽(02)第3张

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

汇编语言——王爽(02)第4张

 汇编语言——王爽(02)第5张

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

汇编语言——王爽(02)第6张

免责声明:文章转载自《汇编语言——王爽(02)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HTML5触屏版多线程渲染模板技术分享用c#开发微信(3)基于Senparc.Weixin框架的接收普通消息处理 (源码下载)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C++反汇编与逆向分析技术揭秘

《C++反汇编与逆向分析技术揭秘》前言 为什么写这本书 “时下的IDE很多都是极其优秀的,拜其所赐,职场上的程序员多出十几倍,但是又有多少能理解程序内部的机制呢?”——侯捷 随着软件技术的发展及其在各个领域的广泛应用,对软件进行逆向工程,然后通过阅读其反汇编代码来推断其数据结构、体系结构和程序设计思路的需求越来越多。逆向工程技术能帮助我们很好地研究和...

汇编语言进制转换

目录 ASCII码说明 十进制转二进制 十六进制转二进制 二进制转十进制 二进制转十六进制 ASCII码说明 48~57: '0'~'9' 65~90: 'A'~'Z' 97~122: 'a'~'z' 十进制转二进制 (输入十进制数保存到BX) dec2bin proc near mov bx, 0 ; 清空BX newchar:...

汇编语言程序入门实验二:在dos下建立子目录操作

汇编语言程序入门实验二:在dos下建立子目录操作 1,背景     在读此文,并读懂前,建议读者先阅读这两篇博客 1,在dos环境下汇编语言程序设计入门(输出hello world)和masm32的下载、安装与使用。详情请见链接:http://blog.csdn.net/u010043538/article/details/12720447。 2,汇编语言...

system 系统调用、gcc编译过程

system 库函数的功能是执行操作系统的命令或者运行指定的程序 #include <stdio.h> #include <stdlib.h>//引入库 int main() { //system("notepad");//打开记事本 system("dir");//查看目录   system("ipconfig")...

AS86 汇编器

内核编程语言和环境 语言编译过程就是把人类理解的高级语言转换成计算机硬件能理解和执行的二进制机器指令的过程。这种转换过程通常会产生一些效率不是很高的代码。所以一些对运行效率要求高或者性能影响较大的部分代码就会直接使用汇编语言来编写。或者对高级语言编译产生的汇编程序在进行人工修改或优化。 AS86汇编器 Linux0.1x系统中使用了两种汇编器,一种是能产...

c程序的执行过程

1.hello程序的生命周期是从一个高级c语言程序开始的,然后为了在系统上运行hello.c程序,每条c语句都必须被其他程序转化为一系列的低级机器语言指令。 2.预处理阶段。预处理器(cpp)根据以字符#开头的命令,修改原始的C程序。#include <stdio.h>命令告诉预处理器读取系统头文件stdio.h的内容,并将它直接插入到程序文...