交换内存中一个字中高低字节的值,有几种写法?

文章讲述了在一次编程测验中,学生们展示了他们在解决字节互换问题上的多种创新汇编语言解法,尽管是初学者,但显示出非同寻常的创造力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在随堂的测验中,为学生出了一道编程题,题目中的一部分要求将一个字中的高低字节互换。
出题后,我试做参考解答,给出的解法是:

mov ax, [bx]
mov bl, al
mov al, ah
mov ah, bl
mov [bx], ax

其中bx指向这一个字。
随后阅卷,惊喜地发现同学们的其他解法,有些看懂了妙不可言。
下面分享众人的智慧,同学们是汇编语言的初学者,但创造性还是非同一般。
下面的4种写法,各有千秋:
(1)

mov ah, [bx]
mov al, [bx+1]
mov [bx], al
mov [bx+1], ah

(2)

mov ax, [bx]
mov [bx], ah
mov [bx+1], al

(3)

mov al, [bx+1]
mov ah, [bx]
mov [bx], ax

(4)

mov ax, [bx]
mov al, ah
mov [bx+1], al 

(5)有点烦,但也对

mov ah, [bx]
inc bx
mov al, [bx]
inc bx
mov [bx-2], ax

(6)下面的想法不错,但的确错误了

mov dx, [bx]
push dl   ;栈操作只针对字
push dh
pop dl
pop dh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值