当前位置:编程学习 > 汇编语言 >>

使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试

1.       建立asm文件在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。注意保存的源文件以asm为后缀。2.       用汇编程序MASM对源文件汇编产生目标程序.OBJ。用连接程序LINK产生可执行文件.EXE
答案:这是我们写的作业,是大写转化成小写字母
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
其他:我写个简单点的  只为了演示这个过程 首先我默认你的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)调试,查看内存等等了! 求数据块的最小值和最大值

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数据区的各数据,重新汇编后再运行,检查结果。 

上一个:用汇编语言编流水灯,有8个LED灯,LED1~LED8 灯按顺序点亮,每个等亮一秒转到下个灯,一直循环亮
下一个:汇编语言问题,代码如下,急

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,