汇编语言学习(一)

前言:这学期新开了汇编语言和微机原理,觉得学的比较吃力呀,觉得是要整理整理学习过的内容啦,一个是复习复习,一个是给将来留一个参考。

第三章.80486基本指令集

1.要求使用串传送指令编写一段程序,实现FIRST和SECOND单元以及FIRST+1和SECOND+1单元的互换


MOV AX,WORD PTR FIRST
XCHGE WORD PTR SECOND,AX
MOV WORD PTR FIRST,AX

2.把数据段SOURCE开始的若干个字节,依次传送到附加段BUF开始的数据缓冲区。

说明:

传传送指令MOVSB,MOVSW,MOVSD. 原串在DS:SI,目标串在ES:DI.

    .486
DATA SEGMENT USE16      ;数据段
SOURCE DB 12H,'HELLO'
LLL EQU $-SOURCE
DATA ENDS
EDATA SEGMENT USE16     ;附加段
BUF DB LLL DUP(?)
EDATA ENDS
CODE SEGMENT USE16      ;代码段
     ASSUME DS:DATA,CS:CODE,ES:EDATA
BEG: MOV AX,SGE DATA    
     MOV DS,AX      
     MOV AX,SGE EDATA
     MOV ES,AX
     MOV SI,OFFSET SOURCE
     MOV DI,OFFSET BUF
     MOV CX,LLL
     CLD            ;CLD正向传送,STD反向传送
AGA: MOVSB
     LOOP AGA
     MOV AH,4CH
     INT 21H
CODE ENDS
     END BEG

最后的循环语句也可以写成:

CODE SEGMENT USE16      ;代码段
     ASSUME DS:DATA,CS:CODE,ES:EDATA
BEG: MOV AX,SGE DATA    
     MOV DS,AX      
     MOV ES,AX
     MOV SI,OFFSET SOURCE
     MOV DI,OFFSET BUF
     MOV CX,LLL
     CLD            ;CLD正向传送,STD反向传送
     REP MOVSB
     MOV AH,4CH
     INT 21H
CODE ENDS
     END BEG

你可能感兴趣的:(汇编语言学习(一))