简单程序设计实验

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

转载于:https://www.cnblogs.com/zyx121322/archive/2008/11/05/1327638.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值