用汇编语言编程:有一个100字节的元素的数组,其首要地址为ARRAY,将每个元素减1(不考虑溢出)后存于原处
1个回答
展开全部
用循环处理。
找一个寄存器(比如SI)指向array,将SI所指向的单元减一,接着SI加一指向下一个字节单元。执行100次即可。
程序如下(在masm5.0和Microsoft (R) Overlay Linker Version 3.60环境下调试通过,利用debug看到正确结果):
dseg segment
array db 10 dup(1,2,3,4,5,6,7,8,9,10);这里定义的数据是随意写的,结果应该是0,1,2,3……
cnt equ $-array;这里直接写上100也可以
dseg ends
cseg segment
assume cs:cseg,ds:dseg
begin: mov ax,dseg
mov ds,ax
mov si,offset array
mov cx,cnt
next: dec byte ptr [si]
inc si
loop next
mov ax,4c00h
int 21h
cseg ends
end begin
找一个寄存器(比如SI)指向array,将SI所指向的单元减一,接着SI加一指向下一个字节单元。执行100次即可。
程序如下(在masm5.0和Microsoft (R) Overlay Linker Version 3.60环境下调试通过,利用debug看到正确结果):
dseg segment
array db 10 dup(1,2,3,4,5,6,7,8,9,10);这里定义的数据是随意写的,结果应该是0,1,2,3……
cnt equ $-array;这里直接写上100也可以
dseg ends
cseg segment
assume cs:cseg,ds:dseg
begin: mov ax,dseg
mov ds,ax
mov si,offset array
mov cx,cnt
next: dec byte ptr [si]
inc si
loop next
mov ax,4c00h
int 21h
cseg ends
end begin
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询