简述在win10 环境下搭建汇编环境,使用vsc+MASM/TASM
1.下载一个vsc
2.安装插件MASM/TASM 编译运行程序
3.安装插件masm-code 代码高亮
4.修改MASM/TASM的配置
5.编写代码 结尾 .asm
;FILENAME EXA131.ASM
.486
DATA SEGMENT USE16;SEGMENT关键词有缩写
;用于保存结果的二进制数
SUM DB ?,?;多了一个逗号
;用于保存结果的二进制数
;显示的字符串
MESG DB '25+9='
DB 0,0,'$';添加结束符
;显示的字符串
N1 DB 9,0F0H;十六进制开头需要以0开始,但是第二个没有用到,这里保留
N2 DB 25;根据N1和16行可知该数据类型为DB
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG:
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET SUM
;计算N1+N2,并将结果保存到SUM处
MOV AH,N1
MOV AL,N2
ADD AH,AL
MOV [BX],AH
;计算N1+N2,并将结果保存到SUM处
;CHANG功能为转发字符串
CALL CHANG
;CHANG功能为转发字符串
;调用DOS显示功能
MOV AH,9
MOV DX,OFFSET MESG;是MESG不是MEST
INT 21H
;调用DOS显示功能
;调用DOS退出功能
MOV AH,4CH
INT 21H
;调用DOS退出功能
CHANG:
LAST:
;算法:由于只有两位数,每次减10,并且显示位(十位)加1直到SUM小于10
CMP byte ptr [BX],10;指定内存单元大小
JC NEXT
SUB byte ptr [BX],10;指定内存单元大小
INC byte ptr [BX+7];指定内存单元大小
JMP LAST
;算法:由于只有两位数,每次减10,并且显示位(十位)加1直到SUM小于10
NEXT:
;将个位数移到显示位(个位)上
;ADD指令不能两个操作数均为内存地址,且AH没有被使用,使用AH来中转
MOV AH,[BX]
MOV [BX+8],AH
;ADD指令不能两个操作数均为内存地址,且AH没有被使用,使用AH来中转
;将个位数移到显示位(个位)上
;0x30为字符'0'的ASCII码表
ADD byte ptr [BX+7],30H
ADD byte ptr [BX+8],30H
;0x30为字符'0'的ASCII码表
RET
CODE ENDS
END BEG
网友评论