2019.04.26汇编上机课
因为本人比较懒,就cc,cv大法了,
我们的某份上课报告
一、实验目的
- 掌握loop和[bx]的联合应用方法
- 掌握在代码段种使用数据和栈的方法
- 掌握将数据、代码、栈放入不同的段中的方法
二、实验内容过程记录
任务1-loop和[bx]的联合应用
编程序计算ffff:0、2、4、6、8、A、C和E 8个字节型单元中数据的和,将最后结果保存在dx中
(下面列出源代码,并截图说明运行的结果)。
assume cs:code
code segment
start:
mov ax,0ffffh
mov ds,ax
mov bx,0
mov dx,0
mov ax,0
mov cx,8
s:
mov al,[bx]
add bx,2
add dx,ax
loop s
mov ax,4c00h
int 21h
code ends
end
任务2-包含多个段的程序(1)
编写code段中的代码,将a段和b段种的数据依次相加,将结果存到c段中。
(下面列出源代码,并截图说明运行的结果)。
代码见P136(5)
assume cs:code ds:a,ds:b,ds:c
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 1,2,3,4,5,6,7,8
c ends
code segment
start:
mov dx,0
mov bx,0
mov cx,8
s0:
mov ax,a
mov ds,ax
mov dl,[bx]
mov ax,c
mov ds,ax
mov [bx],dl
inc bx
loop s0
mov bx,0
mov cx,8
mov
s1:
mov ax,b
mov ds,ax
mov dl,[bx]
mov ax,c
mov ds,ax
add [bx],dl
inc bx
loop s1
mov ax,4c00H
int 21H
code ends
end start
任务3-包含多个段的程序(2)
编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中。(提高要求选做,不添加新的段,也将栈放入到代码段中)
(下面列出源代码,并截图说明运行的结果)。
代码见P136(6)
assume cs:code,ds:a,ss:b
a segment
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
b ends
code segment
start:
mov ax,b
mov ss,ax
mov sp,10h
mov ax,a
mov ds,ax
mov bx,0
mov cx,8
s:
push [bx]
add bx,2
loop s
mov ax,4c00H
int 21H
code ends
end start
任务4-综合运用
编程,将内存ffff:0~ffff:b单元中的数据逆序存放到0:200~0:20b单元中。
(下面列出源代码,并截图说明运行的结果)。
0Ffff+ 00200+我是按照字来逆序的,如果要求按照字节逆序,多加一个寄存器就能实现
assume cs:code,ss:stack
stack segment
dw 0,0,0,0,0,0
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,0cH
mov ax,0ffffH
mov ds,ax
mov bx,0
mov cx,6
s0:
push [bx]
add bx,2
loop s0
mov ax,0020H
mov ds,ax
mov bx,0
mov cx,6
s1:
pop [bx]
add bx,2
loop s1
mov ax,4c00H
int 21H
code ends
end start
运行之前
运行之后
更多推荐
2019.04.26汇编上机课
发布评论