汇编语言篇——顺序程序、循环程序设计

2023-11-30 23:49:59 浏览数 (3)

实验目的和要求

1、熟悉并掌握[BX] 和LOOP的使用;

2、掌握有多个段的程序编程、调试。

实验环境

       Dos编译器

实验内容及结果

1、 编程,向内存0:200~0:23F依次传送数据0~63(3FH)。

运行结果:

2、下面的程序的功能时将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序,上机调试,跟踪运行结果。

assume cs:code

code segment

mov ax, cs

mov ds,ax

mov ax,0020h

mov es,ax

mov bx,0

mov cx,  17h

s: mov al,[bx] ;

mov es:[bx],al

inc bx

loop s

mov ax,4c00h

int 21h

code ends

end

运行结果:

3、程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。

assume cs:code

a segment

db 1,2,3,4,5,6,7,8

a ends

b segment

db 1,2,3,4,5,6,7,8

b ends

c segment

db 0,0,0,0,0,0,0,0

c segment

code segment

start:  mov ax,a

         mov ds,ax

         mov ax,b

         mov es,ax

         mov bx,0

         mov cx,8

s:       mov al,es:[bx]

         add [bx],al

         inc bx

         loop s

         mov ax,c

         mov es,ax

         mov bx,0

         mov cx,8

s0:     mov ax,[bx]

         mov es:[bx],ax

         add bx,2

         loop s0

         mov ax,4c00h

         int 21h

code ends

end start

运行结果:

4、程序如下,编写code段中的代码,用push 指令将a段中的钱8个字符型数据,逆序存储到b段中。

assume cs:code

a

dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh

a ends

b segment

dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

b ends

code segment

start: mov ax,a

         mov ds,ax

         mov ax,b

         mov ss,ax

         mov sp,10h

         mov bx,0

         mov cx,8

s:  push [bx]

         add bx,2

         loop s

       mov ax,4c00h

       int 21h

code ends

end start

运行结果:

实验分析

总是在sp的位置出错。害

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞