|
主题 : : 6.5 实验5 ------------------------(5) (6)----------------- [待解决] |
回复[ 1次 ]
点击[ 386次 ] | |
荣誉值:424
信誉值:0
注册日期:2013-04-08 10:06 |
(5)编写code段中代码,将a段和b段中数据依次相加,结果存C段中:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8 ;定义字节型数据 (内存中会显示 01 02 03 04)而不是00 01 00 02
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 di,0
mov cx,8
mov ax,0
s: mov al,[bx] ;单个单元相加必须用字节型寄存器
add al,es:[bx] ;或者 add al,[bx+16] ,16为十进制
;a段数据在 076A:0 - FH□b段数据在 076B:0 -FH 或是076A:10-1FH,即bx+16 ■c段地址则为076A:20-2F□bx+32
mov [bx+32],al ; bx=1时 ,为ax段:1 ,bx+32 就是 33,就是ax段+2:1 ,如果ax段为1,则cx为3
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
_____________________________________(6)push a段前八个字型数据,逆序存储到b段
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
;内存显示 01 00 02 00 03 00 ,因为0001H入到内存是01 00 低位对低位
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,a
mov ds,ax
mov bx,0
mov ax,b
mov ss,ax
mov sp,16 ;或sp,10H
mov cx,8
s: push [bx]
add bx,2 ;或两个 inc bx 指令
loop s
mov ax,4c00h
int 21h
code ends
end start | | |