汇编语言 第三版 王爽 实验5 第5、6小题程序

来源:互联网 发布:单片机与嵌入式 编辑:程序博客网 时间:2024/05/12 11:24

题目:



注意:

dw 是定义的字型数据,每个数据16个位,两个字节。

db是定义的字节型数据,每个数据8位,一个字节。

所以 需要a b 里的数据段的数据 放到al寄存器中保存。

段寄存器之间不能直接转移数据,需要通过al寄存器来中转。

mov al,es:[bx]add ds:[bx],al

思路:

直接把a段的数据和b段的数据相加保存在a段里,在把a段的数据复制到c段。

这里有一个问题,a b段的数据不是很大 ,相加之后还是小于255,所以不会溢出。如果大于255如何解决呢?微笑


第5小题:

assume cs:codea segment        db 1,2,3,4,5,6,7,8a endsb segment        db 1,2,3,4,5,6,7,8b endsc segment        db 0,0,0,0,0,0,0,0c endscode segmentstart:       mov ax,a       mov ds,ax       mov ax,b       mov es,ax       mov bx,0              mov cx,8      s1:mov al,es:[bx]       add ds:[bx],al       inc bx       loop s1              mov ax,c       mov es,ax       mov bx,0              mov cx,8      s2:mov al,ds:[bx]       mov es:[bx],al       inc bx       loop s2              mov ax,4c00h       int 21hcode endsend start


结果:


第6小题:


思路:

没什么难点,用一个栈就可以了。

assume cs:codea segmentdw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffha endsb segmentdw 0,0,0,0,0,0,0,0b endscode segmentstart:mov ax,amov ds,axmov bx,0mov ax,bmov ss,axmov sp,10hmov cx,8s:push [bx]  add bx,2loop smov ax,4c00hint 21hcode endsend start

结果:



0 0
原创粉丝点击