微机实验报告~最新

时间:2024.3.31

     实验一:DEBUG的启动及其基本命令的使用

一.实验目的:

掌握DEBUG 的基本命令及其功能

二.实验操作步骤:

6.设堆栈指针SP=2000H,AX=3000H,BX=5000H;请仿照例程的格式编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。

1)调用字处理程序建立源程序文件,源程序如下:

DATA SEGMENT

     DATA1 DW 3000H,5000H

     XX DW 2000H

    DATA ENDS

    PROGNAM SEGMENT

     ASSUME CS:PROGNAM,DS:DATA

     START:

            MOV AX,DATA

            MOV DS,AX

            MOV SP,XX

            MOV BP,SP

            MOV SI,0

            MOV AX,DATA1[SI]

            MOV BX,DATA1[SI+2]

            PUSH AX

            PUSH BX

            POP AX

            POP BX

            MOV AH,4CH

            INT 21H

    PROGNAM ENDS

            END START

2.DOS环境下,用汇编程序MASM对源文件汇编产生目标文件OBJ,命令格式如下:

 F:\masm5>masm one1.asm

经过汇编后源程序为:0 Warning Errors

0 Severe Errors。

即为汇编通过

3. 用连接程序link产生执行文件exe

F:\masm5>link one1.obj

4.DEBUG调试程序

调用格式如下:

F:\masm5>debug one1.exe

此时,DEBUG已将执行程序装入内存,可直接用g命令运行程序。

-g

Match.

对程序进行反汇编:

-u

0B9B:0000 B89A0B        MOV     AX,0B9A

0B9B:0003 8ED8          MOV     DS,AX

0B9B:0005 8B260400      MOV     SP,[0004]

0B9B:0009 8BEC          MOV     BP,SP

0B9B:000B BE0000        MOV     SI,0000

0B9B:000E 8B840000      MOV     AX,[SI+0000]

0B9B:0012 8B9C0200      MOV     BX,[SI+0002]

0B9B:0016 50            PUSH    AX

0B9B:0017 53            PUSH    BX

0B9B:0018 58            POP     AX

0B9B:0019 5B            POP     BX

0B9B:001A B44C          MOV     AH,4C

0B9B:001C CD21          INT     21

0B9B:001E F6EB          IMUL    BL

反汇编后,与源程序的要求相符合

堆栈指令运行前AXBX的内容

-g16

AX=3000  BX=5000  CX=002E  DX=0000  SP=2000  BP=2000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=0016   NV UP EI PL NZ NA PO NC

0B9B:0016 50            PUSH    AX

堆栈指令执行后ZXBX的值如下所示:

-g1A

AX=5000  BX=3000  CX=002E  DX=0000  SP=2000  BP=2000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=001A   NV UP EI PL NZ NA PO NC

0B9B:001A B44C          MOV     AH,4C

由以上可知:AXBX的内容得到了交换

5)汇编以及调试中所遇到的问题:

1.MOv语句比较容易出现错误

対源程序进行汇编时无法通过,编程序时应该多注意语法错误。

2.使用debug进行调试时,忘记让程序只运行到断点之前,导致查找出来的AX与BX的内容分并没有进行交换,还是保持原来的值不变,修正后在堆栈指令前先查出AX与BX的值,堆栈后在次查询Ax与BX的值,对比之后AX确实与BX的内容交换了。

实验二  内存操作数及寻址方法

一.实验目的:

1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。

3、掌握简单指令的执行过程。

二.实验内容:

1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用字处理程序编辑程序,用masm.exe和link.exe对源程序进行汇编程和连接,用DEBUG调试程序。

程序步骤与实验一的第六个题目一致

2、用masm和link 对以下程序进行汇编和连接,调试程序在DEBUG调试程序状态下进行。用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。

DATA  SEGMENT

   ORG 0300H

    A  DB  12H,23H,34H,45H,56H,67H,78H,89H,9AH

DATA ENDS

PROGNAM SEGMENT

   ASSUME CS:PROGNAM,DS:DATA

   START:  MOV AX,DATA

           MOV DS,AX

           MOV  AX,BX

           MOV  AX,0300H

           MOV  AX,[0300H]

           MOV  AX,[BX]

           MOV  SI,2

           MOV  AX,0001[BX]

           MOV  AX,[BX][SI]

           MOV  AX,0001[BX][SI]

           MOV AH,4CH

           INT 21H

   PROGNAM  ENDS

           END START

1.在DOS环境下,用汇编程序MASM对源文件汇编产生目标文件OBJ,命令格式如下:

 F:\masm5>masm one1.asm

经过汇编后源程序为:0 Warning Errors

0 Severe Errors。

即为汇编通过

2. 用连接程序link产生执行文件exe

F:\masm5>link one1.obj

3.用debug调试程序:

F:\masm5>debug one1.exe

-g

Match.

4.对程序进行反汇编:

-u

180E:0000 B8DD17        MOV     AX,17DD

180E:0003 8ED8          MOV     DS,AX

180E:0005 8BC3          MOV     AX,BX

180E:0007 B80003        MOV     AX,0300

180E:000A B80003        MOV     AX,0300

180E:000D 8B07          MOV     AX,[BX]

180E:000F BE0200        MOV     SI,0002

180E:0012 8B4701        MOV     AX,[BX+01]

180E:0015 8B00          MOV     AX,[BX+SI]

180E:0017 8B4001        MOV     AX,[BX+SI+01]

180E:001A B44C          MOV     AH,4C

180E:001C CD21          INT     21

180E:001E C406FF76      LES     AX,[76FF]

由第五行:180E:000A B80003        MOV     AX,0300

并没有执行源程序中的:

MOV  AX,[0300H]指令,所以执行后AX的结果为0000

应该对程序进行修改

修改后的原程序如下:

DATA  SEGMENT

   ORG 0300H

    A  DB  12H,23H,34H,45H,56H,67H,78H,89H,9AH

DATA ENDS

PROGNAM SEGMENT

   ASSUME CS:PROGNAM,DS:DATA

   START:  MOV AX,DATA

           MOV DS,AX

           MOV  DX,0300H

           MOV  BX,DX

           MOV  AX,[BX]

           MOV  SI,2

           MOV  AX,0001[BX]

           MOV  AX,[BX][SI]

           MOV  AX,0001[BX][SI]

           MOV AH,4CH

           INT 21H

   PROGNAM  ENDS

           END START

-u

180E:0000 B8DD17        MOV     AX,17DD

180E:0003 8ED8          MOV     DS,AX

180E:0005 BA0003        MOV     DX,0300

180E:0008 8BDA          MOV     BX,DX

180E:000A 8B07          MOV     AX,[BX]

180E:000C BE0200        MOV     SI,0002

180E:000F 8B4701        MOV     AX,[BX+01]

180E:0012 8B00          MOV     AX,[BX+SI]

180E:0014 8B4001        MOV     AX,[BX+SI+01]

180E:0017 B44C          MOV     AH,4C

180E:0019 CD21          INT     21

180E:001B 057183        ADD     AX,8371

180E:001E C406FF76      LES     AX,[76FF]

使用单步执行方法分析每条指令源地址的形成过程:

将数据段的首地址存入寄存器AX中

-t

AX=17DD  BX=0000  CX=032B  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=17CD  ES=17CD  SS=17DD  CS=180E  IP=0003   NV UP EI PL NZ NA PO NC

180E:0003 8ED8          MOV     DS,AX

把AX的值作为DS的首地址

-t

AX=17DD  BX=0000  CX=032B  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=0005   NV UP EI PL NZ NA PO NC

180E:0005 BA0003        MOV     DX,0300

-t

AX=17DD  BX=0000  CX=032B  DX=0300  SP=0000  BP=0000  SI=0000  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=0008   NV UP EI PL NZ NA PO NC

180E:0008 8BDA          MOV     BX,DX

-t

AX=17DD  BX=0300  CX=032B  DX=0300  SP=0000  BP=0000  SI=0000  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=000A   NV UP EI PL NZ NA PO NC

180E:000A 8B07          MOV     AX,[BX]                            DS:0300=2312

将偏移量BX存到寄存器AX中

-t

AX=2312  BX=0300  CX=032B  DX=0300  SP=0000  BP=0000  SI=0000  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=000C   NV UP EI PL NZ NA PO NC

180E:000C BE0200        MOV     SI,0002

将0002赋值给SI

-t

AX=2312  BX=0300  CX=032B  DX=0300  SP=0000  BP=0000  SI=0002  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=000F   NV UP EI PL NZ NA PO NC

180E:000F 8B4701        MOV     AX,[BX+01]                         DS:0301=3423

-t

AX=3423  BX=0300  CX=032B  DX=0300  SP=0000  BP=0000  SI=0002  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=0012   NV UP EI PL NZ NA PO NC

180E:0012 8B00          MOV     AX,[BX+SI]                         DS:0302=4534

-t

AX=4534  BX=0300  CX=032B  DX=0300  SP=0000  BP=0000  SI=0002  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=0014   NV UP EI PL NZ NA PO NC

180E:0014 8B4001        MOV     AX,[BX+SI+01]                      DS:0303=5645

-t

AX=5645  BX=0300  CX=032B  DX=0300  SP=0000  BP=0000  SI=0002  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=0017   NV UP EI PL NZ NA PO NC

180E:0017 B44C          MOV     AH,4C

;系统功能调用的功能号:4C 功能:带返回码结束

-t

AX=4C45  BX=0300  CX=032B  DX=0300  SP=0000  BP=0000  SI=0002  DI=0000

DS=17DD  ES=17CD  SS=17DD  CS=180E  IP=0019   NV UP EI PL NZ NA PO NC

180E:0019 CD21          INT     21

段中指;

有以上可知经过调试后AX=5645H

实验三 算术运算指令

一.实验目的

1.学习算术运算指令的用法。

2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

二.实验内容

编写三个完整的汇编语言源程序,完成以下计算。其中XYZRW均为存放16位带符号数单元的地址。

(1)ZW+(ZX

(2)ZW-(X6)-(R9

(3)Z←(W*X/Y6),R←余数

三.实验操作步骤:

1ZW+Z-X

1实验的源程序如下:

  DATA SEGMENT

  X DW 2567H

  W DW 5841H

  Z DW 36C2H

  DATA ENDS

  PROGNAM SEGMENT

    ASSUME CS:PROGNAM,DS:DATA

    START: MOV AX,DATA

           MOV DS,AX

           MOV SI,0

           MOV AX,X

           SUB [Z],AX           ;(Z-X)

           MOV AX,[W]

           ADC [Z],AX           ;W+(Z-X)

           MOV AH,4CH

           INT 21H

   PROGNAM ENDS

           END START

2)对程序进行反汇编:

-u

0B9B:0000 B89A0B        MOV     AX,0B9A

0B9B:0003 8ED8          MOV     DS,AX

0B9B:0005 BE0000        MOV     SI,0000

0B9B:0008 A10000        MOV     AX,[0000]

0B9B:000B 29060400      SUB     [0004],AX

0B9B:000F A10200        MOV     AX,[0002]

0B9B:0012 11060400      ADC     [0004],AX

0B9B:0016 B44C          MOV     AH,4C

0B9B:0018 CD21          INT     21

0B9B:001A 46            INC     SI

0B9B:001B FE8946F6      DEC     BYTE PTR [BX+DI+F646]

0B9B:001F EB06          JMP     0027

反汇编后,以上结果可以看出与源程序相符合

查询:

-d0b9a:0000,000f

0B9A:0000  67 25 41 58 C2 36 00 00-00 00 00 00 00 00 00 00   g%AX.6..........

执行到断点前

-gf

AX=2567  BX=0000  CX=002A  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=000F   NV UP EI PL NZ AC PO NC

0B9B:000F A10200        MOV     AX,[0002]                          DS:0002=5841

查询执行后的结果:

-d0b9a:0000,000f

0B9A:0000  67 25 41 58 5B 11 00 00-00 00 00 00 00 00 00 00   g%AX[...........

36c2H-2567H=115BH 满足题意得到Z-X的值

-t2

AX=5841  BX=0000  CX=002A  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=0012   NV UP EI PL NZ AC PO NC

0B9B:0012 11060400      ADC     [0004],AX                          DS:0004=115B

AX=5841  BX=0000  CX=002A  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=0016   NV UP EI PL NZ NA PE NC

0B9B:0016 B44C          MOV     AH,4C

-d0b9a:0000,000f

0B9A:0000  67 25 41 58 9C 69 00 00-00 00 00 00 00 00 00 00   g%AX.i..........

115BH+5841H=699CH 得到W+(Z-X)的值

2ZW-(X6)-(R9

DATA SEGMENT

  X DW 2674H

  W DW 7046H

  R DW 310CH

  Z DW ?

  DATA ENDS

  PROGNAM SEGMENT

    ASSUME CS:PROGNAM,DS:DATA

    START: MOV AX,DATA

           MOV DS,AX

           MOV SI,0

           ADC [X],0006H

           ADC [R],0009H

           MOV AX,[X]

           SUB [W],AX

           MOV AX,[R]

           SUB [W],AX

           MOV AX,[W]

           MOV [Z],AX

           MOV AH,4CH

           INT 21H

   PROGNAM ENDS

           END START

对程序进行反汇编:

-u

0B9B:0000 B89A0B        MOV     AX,0B9A

0B9B:0003 8ED8          MOV     DS,AX

0B9B:0005 BE0000        MOV     SI,0000

0B9B:0008 8316000006    ADC     WORD PTR [0000],+06

0B9B:000D 8316040009    ADC     WORD PTR [0004],+09

0B9B:0012 A10000        MOV     AX,[0000]

0B9B:0015 29060200      SUB     [0002],AX

0B9B:0019 A10400        MOV     AX,[0004]

0B9B:001C 29060200      SUB     [0002],AX

-u

0B9B:0020 A10200        MOV     AX,[0002]

0B9B:0023 A30600        MOV     [0006],AX

0B9B:0026 B44C          MOV     AH,4C

0B9B:0028 CD21          INT     21

0B9B:002A FF76F6        PUSH    [BP-0A]

0B9B:002D B8D205        MOV     AX,05D2

0B9B:0030 50            PUSH    AX

0B9B:0031 FF362421      PUSH    [2124]

0B9B:0035 E81864        CALL    6450

0B9B:0038 83C408        ADD     SP,+08

0B9B:003B C45E06        LES     BX,[BP+06]

0B9B:003E 26            ES:

0B9B:003F 837F0600      CMP     WORD PTR [BX+06],+00

-d0b9a:0000000F

0B9A:0000  7A 26 46 50 15 31 00 00-00 00 00 00 00 00 00 00   z&FP.1..........

-g12

AX=0B9A  BX=0000  CX=003A  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=0012   NV UP EI PL NZ AC PO NC

0B9B:0012 A10000        MOV     AX,[0000]                          DS:0000=267A

-d0b9a:0000000f

0B9A:0000  7A 26 46 50 15 31 00 00-00 00 00 00 00 00 00 00   z&FP.1..........

2674H+6=267AH;310cH+9=3115H;分别表示X+6,R+9的值;

-g26

AX=F8B7  BX=0000  CX=003A  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=0026   NV UP EI NG NZ NA PE CY

0B9B:0026 B44C          MOV     AH,4C

-d0b9a:0000

0B9A:0000  7A 26 B7 18 15 31 B7 18-00 00 00 00 00 00 00 00   z&...1..........

0B9A:0010  B8 9A 0B 8E D8 BE 00 00-83 16 00 00 06 83 16 04   ................

0B9A:0020  00 09 A1 00 00 29 06 02-00 A1 04 00 29 06 02 00   .....)......)...

0B9A:0030  A1 02 00 A3 06 00 B4 4C-CD 21 FF 76 F6 B8 D2 05   .......L.!.v....

0B9A:0040  50 FF 36 24 21 E8 18 64-83 C4 08 C4 5E 06 26 83   P.6$!..d....^.&.

0B9A:0050  7F 06 00 74 09 A1 A4 07-39 86 72 FF 76 0A FF 36   ...t....9.r.v..6

0B9A:0060  24 21 B8 DD 05 EB 30 90-80 3E 60 08 00 74 21 8B   $!....0..>`..t!.

0B9A:0070  9E 72 FF 8B 36 D2 25 80-38 00 74 0A FF 36 24 21   .r..6.%.8.t..6$!

7046H-267AH-3115H=187BH;实现了:W-(X6)-(R9

3Z←(W*X/Y6),R←余数

1.源程序如下:

DATA SEGMENT

  X DW 5201H

  W DW 1357H

  Y DW 3671H

  R DW ?

  Z DW ?

  DATA ENDS

  PROGNAM SEGMENT

    ASSUME CS:PROGNAM,DS:DATA

    START: MOV AX,DATA

           MOV DS,AX

           MOV AX,X

           IMUL [W]

           ADD [Y],0006H

           IDIV [Y]

           MOV [Z],AX

           MOV [R],DX

           MOV AH,4CH

           INT 21H

   PROGNAM ENDS

           END START

-u

0B9B:0000 B89A0B        MOV     AX,0B9A

0B9B:0003 8ED8          MOV     DS,AX

0B9B:0005 A10000        MOV     AX,[0000]

0B9B:0008 F72E0200      IMUL    WORD PTR [0002]

0B9B:000C 8306040006    ADD     WORD PTR [0004],+06

0B9B:0011 F73E0400      IDIV    WORD PTR [0004]

0B9B:0015 A30800        MOV     [0008],AX

0B9B:0018 89160600      MOV     [0006],DX

0B9B:001C B44C          MOV     AH,4C

0B9B:001E CD21          INT     21

-gc

AX=F157  BX=0000  CX=0030  DX=0631  SP=0000  BP=0000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=000C   OV UP EI PL NZ NA PO  CY

0B9B:000C 8306040006    ADD     WORD PTR [0004],+06                DS:0004=3671

-g15

AX=1D1E  BX=0000  CX=0030  DX=1465  SP=0000  BP=0000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=0015   NV UP EI PL NZ NA PE NC

0B9B:0015 A30800        MOV     [0008],AX                          DS:0008=0000

-g1c

AX=1D1E  BX=0000  CX=0030  DX=1465  SP=0000  BP=0000  SI=0000  DI=0000

DS=0B9A  ES=0B8A  SS=0B9A  CS=0B9B  IP=001C   NV UP EI PL NZ NA PE NC

0B9B:001C B44C          MOV     AH,4C

-d0b9a:0006

0B9A:0000                    65 14-1E 1D 00 00 00 00 00 00         e.........

0B9A:0010  B8 9A 0B 8E D8 A1 00 00-F7 2E 02 00 83 06 04 00   ................

0B9A:0020  06 F7 3E 04 00 A3 08 00-89 16 06 00 B4 4C CD 21   ..>..........L.!

0B9A:0030  06 90 C7 46 F6 00 00 FF-76 F8 FF 76 F6 B8 D2 05   ...F....v..v....

0B9A:0040  50 FF 36 24 21 E8 18 64-83 C4 08 C4 5E 06 26 83   P.6$!..d....^.&.

0B9A:0050  7F 06 00 74 09 A1 A4 07-39 86 72 FF 76 0A FF 36   ...t....9.r.v..6

0B9A:0060  24 21 B8 DD 05 EB 30 90-80 3E 60 08 00 74 21 8B   $!....0..>`..t!.

0B9A:0070  9E 72 FF 8B 36 D2 25 80-38 00 74 0A FF 36 24 21   .r..6.%.8.t..6$!

0B9A:0080  B8 E5 05 EB 12 90    

                            ......

实现了Z=W*X/Y6=1465HR1D1EH

 

实验四  查表程序设计

一.实验目的

1、熟练掌握编写汇编语言原程序的基本方法和基本框架。

2、掌握查表法和查表指令XLAT。

3、熟练使用DEBUG调试程序。

二.实验内容:

用查表的方法将一位十六进制数转换成与它相应的ASCII码,并将结果存放到ASCI单元中。

三.编程提示:

既然指定用查表的方法,那么首先要建立一个表TABLE。我们在表中按照十六进制数从小到大的顺序放入他们对应的ASCII码值。

DATA    SEGMENT

TABLE   DB  30H,31H,32H,33H,34H,35H,36H,37H

         DB  38H,39H,41H,42H,43H,44H,45H,46H

HEX     DB  X ;X为待转换的十六进制数

ASCI     DB  ?;存放转换后的ASCII码

DATA     ENDS

四、实验操作:

1.实验源程序如下:

 DATA SEGMENT

               TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H

                      DB 38H,39H,41H,42H,43H,44H,45H,46H

               HEX DB 0AH ;0AH为待转换的十六进制数

               ASCI DB ?;存放转换后的ASCII码

              DATA ENDS

       PROGNAM SEGMENT

           ASSUME CS:PROGNAM,DS:DATA

           START:MOV AX,DATA

                  MOV DS,AX

                  MOV BX,OFFSET TABLE

                  MOV AL,HEX

                  XLAT TABLE

                  MOV ASCI,AL

                  MOV AH,4CH

                  INT 21H

       PROGNAM ENDS

              END START

使用Debug调试:

E:\masm5>debug one1.exe

先对程序进行反汇编:

-u

0BB3:0000 B8B10B        MOV     AX,0BB1

0BB3:0003 8ED8          MOV     DS,AX

0BB3:0005 BB0000        MOV     BX,0000

0BB3:0008 A01000        MOV     AL,[0010]

0BB3:000B D7            XLAT

0BB3:000C A21100        MOV     [0011],AL

0BB3:000F B44C          MOV     AH,4C

0BB3:0011 CD21          INT     21

0BB3:0013 C404          LES     AX,[SI]

0BB3:0015 50            PUSH    AX

0BB3:0016 8D867CFF      LEA     AX,[BP+FF7C]

0BB3:001A 50            PUSH    AX

0BB3:001B E8446E        CALL    6E62

0BB3:001E 83C406        ADD     SP,+06

由以上反汇编可得所查数据的段首地址为0bb1,偏移量为:0011

-gf

AX=0B41  BX=0000  CX=0033  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=0BB1  ES=0BA1  SS=0BB1  CS=0BB3  IP=000F   NV UP EI PL NZ NA PO NC

0BB3:000F B44C          MOV     AH,4C

-d0bb1:0011,0019

  -d0bb1:0010         41 00 00 00 00 00 00-00 00                A…………

                                       .

由上面的内容易知0AH的ASCII码为41

五、调试中所遇到的问题:

1.指令输入错误

立即数传送给段寄存器DS时,错误的使用了 mov DS,DATA

这在程序会变时产生错误

经过修改 mov AX,DATA

         Mov DS,AX

将DATA传入到DS当中

2.程序基本框架错误

刚开始不太熟悉程序的基本框架,虽然汇编通过,没有错误,但是在执行程序或者使用debug调试程序时,程序无反应,这是由于结构框架错误导致的

通过书本上的例题,对程序框架进行改进

3.调试让程序运行到中断点之前,但是在查询时不知道所要查询的数据的地址以及其范围,这就使得查询出来的数据太多也比较难找,所以应该确定所要查询数据的地址范围,以方便查找。

更多相关推荐:
微机实验报告

微机实验报告实验名称KeilC的使用与汇编语言上机操作一任务要求实验目的熟悉KeilC环境通过在KeilC环境下调试字节拆分合并程序数据块清零程序加法程序掌握汇编语言程序的调试方法加深对BCD码ASCII码堆栈...

微机实验报告

微机原理与接口技术实验报告姓名张楠乔学号10213030班级自动化1004指导教师周永华实验一交通灯控制实验一实验目的通过并行接口8255实现十字路口交通灯的模拟控制进一步掌握对并行口的使用二实验内容实验内容如...

微机实验报告

实验一汇编语言上机操作训练比较字符串一实验目的1学习程序设计的基本方法和技能2熟练掌握汇编语言设计编写调试和运行二实验内容和要求1汇编语言程序上机操作方法编写一程序比较两个字符串STRING1和STRING2所...

东南大学微机实验报告(二)

姓名专业评定成绩东南大学实验报告实验二汇编语言程序设计学号实验室审阅教师1微机实验及课程设计实验目的进一步熟悉汇编语言的编辑宏汇编链接和运行的基本概念熟练掌握动态调试程序TDDEBUG的常用指令和窗口功能学会用...

微机原理实验报告

微机原理与应用课程实验报告实验分工报告人同组人实验时间20xx1210课程设计一题目要求1在数据段首址为0100H开始的内存区1按从大到小的顺序顺次存入二进制数150共16个字节的数据2将上述源区内容传送到目的...

微机原理实验报告

微机原理实验报告实验一两个多位十进制数相加的实验一实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程二实验内容将两个多位十进制数相加要求被加数和加数均以ASCII码形...

工业用微型计算机实验报告

工业用微型计算机实验报告地市郑州市准考证号01221400426姓名孟志威学科专业机械制造与自动化指导教师课题名称工业用微型计算机河南省高等教育自学考试20xx年4月20日1实验一8255动态LED数码显示实验...

电子科技大学微机实验报告(含思考题)河畔下的哈】实验6

实验六基于ARM的键盘及数码管驱动实验1掌握键盘及数码管驱动原理2掌握ZLG7290芯片的使用方法3掌握I2C总线的协议标准4掌握Linux下键盘驱动的实现方法编写测试程序控制键盘和数码管1了解ARM9处理器结...

微机原理及应用实验报告

微机原理及应用实验报告班级姓名学号中南大学机电工程学院精密测控实验室实验二软件程序设计1实验目的1掌握MCS51单片机指令系统及用汇编语言编程技巧2了解和熟悉用MCS51单片机仿真开发机调试程序的方法2实验内容...

华工微机实验报告

微机系统与接口实验电子与信息学院电类联合班何俊实验二将ASCII码表示的十进制数转换为二进制数1将ASCII码表示的十进制数转换为二进制数DATASEGMENTORG3500HNUM1DB5DUP0ORG351...

微机实验报告

微机原理与与接口技术实验报告学院应用物理与材料学院专业电子信息技术光电工程班级学号11060439学生姓名庞建富实验日期指导老师成绩评定五邑大学计算机学院制表1实验一一实验名称系统认识实验二实验目的1掌握TD系...

微机实验报告5

微机原理与应用实验报告实验序号实验5实验项目名称用DEBUG验证并熟悉8086指令系统1234567

微机实验报告(32篇)