南邮汇编 Homework3.5 数据互换

汇编之前有次布置的课后作业,动手敲了下代码,现在记录一下。

题目

  • 3.5

已知数据段有:

FIRST  DB 12H, 34H
SECOND DB 56H, 78H

(1)要求采用传送指令编写一段程序,实现 FIRSTSECOND 单元的内容互换, FIRST + 1 单元和 SECOND + 1 单元的内容互换。

(2)设 (SS) = 2000H,(SP) = 3456H,用堆栈指令编写一段程序完成上述要求,并画出堆栈的数据变化示意图。

代码

(1)

DATAS SEGMENT
FIRST DB 12H,34H
SECOND DB 56H,78H
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AL,FIRST
    MOV BL,SECOND
    MOV FIRST,BL
    MOV SECOND,AL
    MOV AL,FIRST+1
    MOV BL,SECOND+1
    MOV FIRST+1,BL
    MOV SECOND+1,AL
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

事实上,第一小问的核心代码可以再简化一点。三行就能搞定内容互换。

MOV  AX,WORD PTR FIRST
XCHG WORD PTR SECOND,AX
MOV  WORD PTR FIRST,AX

(2)

DATAS SEGMENT
FIRST DB 12H,34H
SECOND DB 56H,78H
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;MOV AL,FIRST
    ;MOV AH,FIRST+1
    ;MOV BL,SECOND
    ;MOV BH,SECOND+1
    ;PUSH AX
    ;PUSH BX
    PUSH WORD PTR FIRST
    PUSH WORD PTR SECOND
    POP WORD PTR FIRST
    POP WORD PTR SECOND
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

具体调试可以参考一下我的这篇博客

全部评论

相关推荐

11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务