微机原理与接口汇编程序

微机原理 专栏收录该内容
2 篇文章 0 订阅

串操作

MOV SI,1000H
MOV DI,2000H
MOV CX,5H
CLD
REP MOVSB

计算:y=x3+x2+1,x=3,求y

DATA SEGMENT                                                         
X DB 3;更改x的值
Y DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV BL,X
MOV AL,X
MUL BL
MOV BL,X
ADD BL,1
MUL BL
ADD AX,1
MOV Y,AX
CODE ENDS
END START

不使用数据段

CODE SEGMENT
ASSUME CS:CODE
START:
MOV AL,2;更改2的值
MOV BL,AL
MUL BL
ADD BL,1
MUL BL
ADD AX,1
CODE ENDS
END START

求和

DATA SEGMENT
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV BX,2;奇数和将2改为1即可,全部的和改为1
MOV CX,50;全部和改为100
MOV DX,0
L1:
ADD AX,BX
ADD BX,2;全部和改为1
LOOP L1
MOV SUM,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START 

内存中有数据X,Y,判断变量X中的数是奇数还是偶数,如果X是奇数,则输出‘jishu’;X是偶数,则输出‘OUSHU’。

DATA SEGMENT
X DB 34
S1 DB 'jishu$'
S2 DB 'OUSHU$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,X
SHR AL,1
JC L1
MOV AH,9
MOV DX,OFFSET S2
INT 21H
MOV AH,4CH
INT 21H
L1:
MOV AH,9
MOV DX,OFFSET S1
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START

调用子程序:输出图形

CODE SEGMENT
ASSUME CS:CODE
START:
CALL KONG
CALL XING
CALL CRLF
CALL XING
CALL KONG
CALL XING
MOV AH,4CH
INT 21H
XING PROC
MOV AH,2
MOV DX,'*'
INT 21H
RET
XING ENDP
KONG PROC
MOV AH,2
MOV DX,' '
INT 21H
RET
KONG ENDP
CRLF PROC
MOV AH,2
MOV DX,10
INT 21H
MOV DX,13
INT 21H
RET
CRLF ENDP
CODE ENDS
END START

X中有一个数,若是负数输出’FUSHU’,否则输出’FEIFUSHU’

DATA SEGMENT
X DB -9
S1 DB 'FUSHU$'
S2 DB 'FEIFUSHU$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV BL,0
MOV CL,X
CMP CL,BL
JS L1
MOV AH,9
MOV DX,OFFSET S2
INT 21H
MOV AH,4CH
INT 21H
L1:
MOV AH,9
MOV DX,OFFSET S1
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START

换码

-F 1000 1003 ‘abcd$’
MOV BX,1000
MOV AL,2
XLAT

结果 AL:63H

平方和:

DATA SEGMENT
X DB 1,4,8,9,16,25,36,49,64,81,100,21,144,169,196,225
Y DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET X
MOV AL,10
XLAT
MOV Y,AL
CODE ENDS 
END START
大数加和:
DATA SEGMENT
X DB 31H,21H,13H,0
Y DB 21H,25H,32H,0
Z DB 4 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV CX,4
MOV BX,OFFSET X
MOV SI,OFFSET Y
MOV DI,OFFSET Z
CLC
L1:
MOV AL,[BX]
ADC AL,[SI]
DAA
MOV [DI],AL
INC BX
INC SI
INC DI
LOOP L1
CODE ENDS
END START

将1放大20倍:

CODE SEGMENT
ASSUME CS:CODE
START:
MOV AL,1
MOV CL,4
MOV BL,AL
SHL BL,CL
MOV CL,2
SHL AL,CL
ADD AL,BL
CODE ENDS
END START
  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值