使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试
1. 建立asm文件在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。注意...
1. 建立asm文件在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。注意保存的源文件以asm为后缀。2. 用汇编程序MASM对源文件汇编产生目标程序.OBJ。用连接程序LINK产生可执行文件.EXE
展开
3个回答
展开全部
求数据块的最小值和最大值
1)实验内容
在以BUFFER为首址的内存中存放了若干个带符号数, 其个数存放在首单元,寻找出它们最大值放到存储单元MAXVAL中, 最小值放到存储单元MINVAL中。汇编语言源程序如下:
DATA SEGMENT
BUFFER DB 10,22,33,-80,127,-76,0,90,-45,60,-1
MINVAL DB ?
MAXVAL DB ?
DATA ENDS
STACK SEGMENT PARA STACK ‘STACK’
STA DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK
START PROC FAR
PUBH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV ES, AX
LEA BX, BUFFER
MOV CH, 0
MOV CL, [BX]
INC BX
MOV AL, [BX]
MOV MINVAL, AL
MOV MAXVAL, AL
INC BX
DEC CX
AGAIN: MOV AL, [BX]
CMP AL, MINVAL
JE NEXT
JG A1
MOV MINVAL, AL
JMP NEXT
A1: CMP AL, MAXVAL
JL NEXT
MOV MAXVAL, AL
NEXT: INC BX
DEC CX
JNE AGAIN
RETF
START ENDP
CODE ENDS
END START
2)实验步骤
(1)用编辑程序建立源程序文件,文件名自定。
(2)用MASM宏汇编程序和LINK连接程序将源程序文件汇编生成以EXE为扩展名的执行文件。
(3)用DEBUG调试程序将由上产生的EXE可执行文件送入内存,先用反汇编命令检查程序内容和首末地址,然后检查以BUFFER为首址的存储单元中数据块和MINVAL、MAXVAL单元的内容。BUFFER 地址单元的段地址和偏移地址是由系统在汇编和连接时指定的。各个不同的系统都不一样,一般来说,偏移地址为零,段地址可在反汇编程序时,根据指令MOV AX, DATA 对应机器码中DATA的值来确定。
(4)在DEBUG下运行程序,检查运行结果。
(5)修改源程序中BUFFER数据区的各数据,重新汇编后再运行,检查结果。
1)实验内容
在以BUFFER为首址的内存中存放了若干个带符号数, 其个数存放在首单元,寻找出它们最大值放到存储单元MAXVAL中, 最小值放到存储单元MINVAL中。汇编语言源程序如下:
DATA SEGMENT
BUFFER DB 10,22,33,-80,127,-76,0,90,-45,60,-1
MINVAL DB ?
MAXVAL DB ?
DATA ENDS
STACK SEGMENT PARA STACK ‘STACK’
STA DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK
START PROC FAR
PUBH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV ES, AX
LEA BX, BUFFER
MOV CH, 0
MOV CL, [BX]
INC BX
MOV AL, [BX]
MOV MINVAL, AL
MOV MAXVAL, AL
INC BX
DEC CX
AGAIN: MOV AL, [BX]
CMP AL, MINVAL
JE NEXT
JG A1
MOV MINVAL, AL
JMP NEXT
A1: CMP AL, MAXVAL
JL NEXT
MOV MAXVAL, AL
NEXT: INC BX
DEC CX
JNE AGAIN
RETF
START ENDP
CODE ENDS
END START
2)实验步骤
(1)用编辑程序建立源程序文件,文件名自定。
(2)用MASM宏汇编程序和LINK连接程序将源程序文件汇编生成以EXE为扩展名的执行文件。
(3)用DEBUG调试程序将由上产生的EXE可执行文件送入内存,先用反汇编命令检查程序内容和首末地址,然后检查以BUFFER为首址的存储单元中数据块和MINVAL、MAXVAL单元的内容。BUFFER 地址单元的段地址和偏移地址是由系统在汇编和连接时指定的。各个不同的系统都不一样,一般来说,偏移地址为零,段地址可在反汇编程序时,根据指令MOV AX, DATA 对应机器码中DATA的值来确定。
(4)在DEBUG下运行程序,检查运行结果。
(5)修改源程序中BUFFER数据区的各数据,重新汇编后再运行,检查结果。
展开全部
我写个简单点的 只为了演示这个过程 首先我默认你的masm装在C盘
开始——运行——command——cd\——cd masm——edit shiyan.asm
assume cs:deng
deng segment
mov ax,2
add ax,ax
mov 4c00h
int 21h
deng ends
end
以上是编辑过程
退出edit(alt+f再按x)
masm shiyan;
link shiyan;
debug shiyan.exe
下面你就可以单步运行(按t)调试,查看内存等等了!
开始——运行——command——cd\——cd masm——edit shiyan.asm
assume cs:deng
deng segment
mov ax,2
add ax,ax
mov 4c00h
int 21h
deng ends
end
以上是编辑过程
退出edit(alt+f再按x)
masm shiyan;
link shiyan;
debug shiyan.exe
下面你就可以单步运行(按t)调试,查看内存等等了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是我们写的作业,是大写转化成小写字母
DATA SEGMENT
BUFFER DB 'ABCD123EFG',0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA BX,BUFFER
L: MOV AL,[BX]
CMP AL,0
JE L0
CMP AL,'A'
JB L1
CMP AL,'Z'
JA L1
ADD AL,20H
L1: INC BX
MOV DL,AL
MOV AH,2
INT 21H
JMP L
L0: MOV AH,4CH
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
DATA SEGMENT
BUFFER DB 'ABCD123EFG',0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA BX,BUFFER
L: MOV AL,[BX]
CMP AL,0
JE L0
CMP AL,'A'
JB L1
CMP AL,'Z'
JA L1
ADD AL,20H
L1: INC BX
MOV DL,AL
MOV AH,2
INT 21H
JMP L
L0: MOV AH,4CH
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询