博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写代码与初步运行
阅读量:3948 次
发布时间:2019-05-24

本文共 1852 字,大约阅读时间需要 6 分钟。

1、现在E盘建立一个MASM文件夹

在这里插入图片描述
LINK.EXE 连接
2、在EX11.ASM中写代码
汇编语言的主体框架

DATA SEGMENTDATA ENDSCODE SEGMENTASSUME   CS:CODE, DS:DATASTART:	MOV  AX, DATA	MOV  DS,AX		MOV AH, 4CH	INT 21HCODE ENDSEND 	START

汇编语言里面分号;表示注释

标志位必须记住:
https://wenku.baidu.com/view/71fe5f06cc17552707220801.html

在这里插入图片描述

DATA SEGMENT	BUF1  DB  A8H,9FH,B4H,25H	BUF2  DB  78H,FFH,D3H,5CH	BUF3  DB  4  DUP(?) DATA ENDSCODE SEGMENTASSUME   CS:CODE, DS:DATASTART:	MOV  AX, DATA	MOV  DS,AX	LEA  SI,BUF1	LEA  DI,BUF2	MOV BX,OFFSET BUF3	MOV CX,4	CLC 	;CF=0,  STC    CF=1//循坏NEXT:	MOV   AL,[SI]//取字节	MOV   DL,[DI]//取字节	ADD AL,DL//相加	MOV  [BX],AL//存数	INC   SI//移指针	INC   DI//移指针	INC   BX//移指针	DEC  CX//循环次数减1	JNZ    NEXT	;ZF=0//循环回去	MOV AH, 4CH	INT 21HCODE ENDSEND 	START

运行的代码

DATA SEGMENT	BUF1  DB  A8H,9FH,B4H,25H	BUF2  DB  78H,FFH,D3H,5CH	BUF3  DB  4  DUP(?) DATA ENDSCODE SEGMENTASSUME   CS:CODE, DS:DATASTART:	MOV  AX, DATA	MOV  DS,AX	LEA  SI,BUF1	LEA  DI,BUF2	MOV BX,OFFSET BUF3	MOV CX,4	CLC 	;CF=0,  STC    CF=1NEXT:	MOV   AL,[SI]	MOV   DL,[DI]	ADD AL,DL	MOV  [BX],AL	INC   SI	INC   DI	INC   BX	DEC  CX	JNZ    NEXT	;ZF=0	MOV AH, 4CH	INT 21HCODE ENDSEND 	START

2、调试和下载

下载

在这里插入图片描述
DOSBox-汇编环境搭建步骤
1、下载DOSBox0.74-win32-installer,并安装
2、桌面出现图标,点击进入下面界面:(按alt+回车可以键入全屏,再按alt+回车返回半屏)
在这里插入图片描述

3、将MASM目录进行绑定

设MASM目录位于E:\MASM,该目录下有进行汇编程序设计的几个基本文件:MASM.exe(微软开发的汇编程序,用于把用户开发的汇编语言源程序*.asm 汇编成目标文件*.obj),LINK.exe(用于把目标文件*.obj连接生成*.exe可执行文件),debug.exe(调试文件),EDIT.EXE(全屏幕文本编辑器)
绑定方法:
mount c: e:\MASM 回车后键入C:,回车

当前的C盘就被关联到E:\MASM

在当前C盘键入dir命令,可以看到E:\MASM目录下的文件

在这里插入图片描述

在这里插入图片描述
第二行、第三行代码出现错误,是因为A8H中A被当作变量,应在前面加上0

DATA SEGMENT	BUF1  DB  0A8H,9FH,0B4H,25H	BUF2  DB  78H,0FFH,0D3H,5CH	BUF3  DB  4  DUP(?) DATA ENDS

下一步:连接

在这里插入图片描述
DEBUG的命令
Debug-R 查看、改变CPU寄存器的内容
Debug-D 查看内存中的内容
Debug-E 改写内存中的内容
Debug-U 将内存中的机器指令翻译成汇编指令
Debug-T 执行一条机器指令
Debug-A 以汇编指令的格式在内存中写入一条机器指令

原文链接:https://blog.csdn.net/qq_36215315/article/details/79893476

代码中指令ADD虽然编译没有错误,但是结果是错误的,应该用 ADC。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的文章
mysql学习使用二(更新)
查看>>
java匿名内部类原理及使用
查看>>
java基础学习之Timer定时器使用
查看>>
Linux中修改环境变量及快速生效方法
查看>>
Linux学习 - vi/vim 编辑器显示行号
查看>>
linux 卸载python
查看>>
Linux下安装Python2.7与升级至2.7
查看>>
winscp连接linux虚拟机失败
查看>>
解决报错 “build.sh /bin/bash^M: 坏的解释器:没有那个文件或目录”
查看>>
linux学习之tr操作符用法
查看>>
shell的dirname $0和readlink用法
查看>>
linux软连接指向修改
查看>>
Android开发——Crash捕获SDK是如何捕获Application中onCreate的崩溃信息的
查看>>
Android开发——AS插件批量解决XML中的String/Color/Dimen硬编码
查看>>
Android开发——View Binding的使用与解析
查看>>
Android开发——如何优雅的将布局置于输入法之上
查看>>
Android开发——H5容器加载速度优化方案
查看>>
JVM——Java虚拟机架构
查看>>
JVM——内存管理和垃圾回收
查看>>
Android开发——Activity生命周期
查看>>