5、程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。
db定义字节类型变量,一个字节数据占1个字节单元
dw定义字类型变量,一个字数据占2个字节单元
实现源程序:
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 cx,8
s:
;bx用于保存ds的偏移索引
mov bx,cx
sub bx,1
;将a段中的值保存在al中
mov ax,a
mov ds,ax
mov al,[bx]
;将b段中的值和a段中的对应值相加
mov dx,b
mov ds,dx
add al,[bx]
;将ax的值保存到c段中
mov dx,c
mov ds,dx
mov [bx],al
loop s
mov ax,4c00H
int 21H
code ends
end start
运行截图:
初始情况下a,b,c段数据存储情况:
运行结束后a,b,c段数据存储情况:
6、程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中。
源程序:
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends
b segment
db 0,0,0,0,0,0,0,0
b ends
code segment
start:
;栈顶指针初始化
mov ax,b
mov ss,ax
mov sp,10H
;data段初始化
mov ax,a
mov ds,ax
mov cx,8
s:
;bx用于保存即将压入栈字的索引
mov bx,8
sub bx,cx
add bx,bx
;将bx索引处数据压入栈
push ds:[bx]
loop s
mov ax,4c00H
int 21H
code ends
end start
运行截图:
初始情况下a,b段数据存储情况:
运行结束后a,b段数据存储情况:
重要:刚得知我好朋友过华理复试线了,祝她早日上岸脱离苦海。
参考文献:汇编语言(第四版)王爽著