1.编写计算的程序
DATA SEGMENT
X DB 29
Y DB 8
Z DB 25
F DW ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
MAIN PROC FAR
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA ;数据段寄存器DS初始化
MOV DS,AX
MOV AL,X ;MOV AL取操作数X
MUL Y ;MUL完成X*Y运算,结果放在AX中
MOV BH,0
MOV Bl,Z
ADD AX,BX ;完成X*Y+Z
SUB AX,500
MOV F,AX ;SUB最后AX送入F中
RET
MAIN ENDP
CODE ENDS
END START
2.实现逻辑电路的功能
STACKA SEGMENT STACK
DB 100 DUP (?)
STACKA ENDS
DATA SEGMENT
IN1 DB 00001111B
IN2 DB 10101010B
IN3 DB 11111111B
IN4 DB 11111011B
F DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
MAIN PROC FAR
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA ;数据段寄存器DS初始化
MOV DS,AX
MOV AL,IN1
NOT AL
MOV AH,IN2
OR AL,AH
MOV BL,IN3
AND BL,IN4
XOR AL,BL
MOV F,AL
RET
MAIN ENDP
CODE ENDS
END START
3.编写一个32位无符号数除法的程序
STACKA SEGMENT STACK
DB 100 DUP (?)
STACKA ENDS
DATA SEGMENT
NUM1 DD 2A8B7654H
NUM2 DW 5ABCH
NUM3 DW ?
NUM4 DW ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
MANUM PROC FAR
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA ;数据段寄存器DS初始化
MOV DS,AX
MOV AX,WORD PTR NUM1
MOV DX,WORD PTR NUM1+2
DIV NUM2
MOV NUM3,AX
MOV NUM4,DX
RET
MANUM ENDP
CODE ENDS
END START
4.编写一个"拆字"程序
STACKA SEGMENT STACK
DB 100 DUP (?)
STACKA ENDS
DATA SEGMENT
ARY DB 12H
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
MANUM PROC FAR
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA ;数据段寄存器DS初始化
MOV DS,AX
MOV SI,OFFSET ARY
mov AH,0
MOV AL,[SI]
MOV BL,10H
DIV BL
MOV [SI+1],AL
MOV AL,[SI]
AND AL,0FH
MOV [SI+2],AL
RET
MANUM ENDP
CODE ENDS
END START