汇编 编写、调试具有多个段的程序
2014-05-27 22:10
441 查看
程序如下,编写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 ends
code segment
start:
mov ax,a
mov
ds,ax
mov
ax,b
mov
es,ax
mov bx,0
mov cx,8
s: mov al,[bx]
add es:[bx],al
inc bx
loop s
mov
ax,c
mov
ds,ax
mov bx,0
mov cx,8
s0: mov al,es:[bx]
mov [bx],al
inc
bx
loop s0
mov ax,4c00h
int 21h
code ends
end start
=======================华丽的分割线===============================
程序二:一次循环
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 ends
code segment
start:
mov ax,a
mov ds,ax
;ds指向a段地址
mov ax,b
mov es,ax
;es指向b段地址
mov bx,0
mov cx,8
s: mov al,[bx]
add al,es:[bx]
mov dx,c
mov ds,dx
;ds指向c段地址
mov [bx],al
mov ax,a
mov ds,ax
;重新将ds指向a段(好像此处还能改进)
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
=======================华丽的分割线===============================
程序三:程序二的改进版
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 ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov ax,c
mov ss,ax
mov bx,0
mov cx,8
s:
mov ax,[bx]
mov ss:[bx],ax
mov ax,es:[bx]
add ss:[bx],ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
程序如下,编写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 ends
code segment
start:
mov ax,a
mov
ds,ax
mov
ax,b
mov
es,ax
mov bx,0
mov cx,8
s: mov al,[bx]
add es:[bx],al
inc bx
loop s
mov
ax,c
mov
ds,ax
mov bx,0
mov cx,8
s0: mov al,es:[bx]
mov [bx],al
inc
bx
loop s0
mov ax,4c00h
int 21h
code ends
end start
=======================华丽的分割线===============================
程序二:一次循环
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 ends
code segment
start:
mov ax,a
mov ds,ax
;ds指向a段地址
mov ax,b
mov es,ax
;es指向b段地址
mov bx,0
mov cx,8
s: mov al,[bx]
add al,es:[bx]
mov dx,c
mov ds,dx
;ds指向c段地址
mov [bx],al
mov ax,a
mov ds,ax
;重新将ds指向a段(好像此处还能改进)
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
=======================华丽的分割线===============================
程序三:程序二的改进版
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 ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov ax,c
mov ss,ax
mov bx,0
mov cx,8
s:
mov ax,[bx]
mov ss:[bx],ax
mov ax,es:[bx]
add ss:[bx],ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
相关文章推荐
- 汇编语言:实验五 编写、调试具有多个段的程序
- 汇编试验五:编写、调试具有多个段的程序
- 汇编语言 实验5 编写,调试具有多个段的程序(转载)
- 汇编学习笔记-实验5 编写,调试具有多个段的程序[1]
- [Hb-V] 编写 调试具有多个段的程序
- win7 64位下 使用DOSBOX 进行汇编程序的编写调试
- 实验五: 编写、调试具有多个段的程序
- 小结:实验5 编写、调试具有多个段的程序
- 在64位Windows8系统下编写并调试汇编程序
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 汇编语言(王爽)--实验5:编写,调试具有多个段的程序
- 编写和调试程序
- 同一张光盘安装的VC为什么调试时有的机子是程序步,有的是汇编语言呢?
- 编写完之后如何调试运行 用Microsoft Visual C++ 6.0可以编写C#程序吗
- 汇编调试程序DEBUG
- 使用 gdb 对程序进行汇编级调试
- 使用Turbo C进行C程序编写和调试的技巧
- [强]用VC++6.0编译调试汇编程序
- 编写和调试Shader程序(1)