用汇编语言编写一个简单程序

设堆栈指针SP=2000H,AX=3000H,BX=5000H;编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元。可用的话绝对加分!... 设堆栈指针SP=2000H,AX=3000H,BX=5000H;编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元。可用的话绝对加分! 展开
 我来答
意法半导体(中国)投资有限公司 2023-06-12
展开全部
MAIN: MOV SP,#50H MOV DPTR,#TAB;读入字模指针 MOV 30H,DPL; 存起来 ;堆栈低8位 MOV 31H,DPH ;堆栈高8位 MOV 32H,30H;再记录指针,留作移动了多少位的判断 用。 MOV 3H,31H ;3H记录字模数据的高位地址 INC 3H;3H高位地址+5,表示数据有5X256列之多。 ROL: MOV R2,#01H;设扫描次数 INI1: MOV DPL,30H;这段是扫描一次32列 MOV DPH,31H MOV R4,#32 MOV R3,#0 LOP1 P1,R3 CLR A MOVC A,@A+DPTR MOV P0,A INC DPTR CLR A MOVC A,@A+DPTR MOV P2,A INC DPTR CAL DELAY INC R3 DJNZ R4,LOP1 DJNZ R2,INI1;这条预留扫描次数用可以调整速度 MOV DPL,3…
船板行家bG
2011-10-30 · TA获得超过148个赞
知道答主
回答量:64
采纳率:0%
帮助的人:36.3万
展开全部
1.计算U=(X+(Y*Z-100))/W
其中:X,Y,Z,W均为十六位有符号数。
程序如下:
DATA SEGMENT
X DW 10 ;16位变量
Y DW 20
Z DW 30
W DW 40
U DW ?,?

DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,Y
IMUL Z ;计算Y*Z,内容放在DX,AX中
MOV CX,AX
MOV BX,DX
SUB CX,100 ;计算Y*Z-100
SBB BX, 0
MOV AX,X
CWD ;将X符号扩展,形成DX:AX中的双字
ADD AX,CX ;计算X+(Y*Z-100),内容放在DX,AX中
ADC DX,BX
IDIV W ;计算(X+(Y*Z-100))/W
MOV U,AX
MOV U+2,DX
MOV AH,4CH
INT 21H
CODE ENDS
END START
意法半导体(中国)投资有限公司
2023-06-12 广告
char seg7[10]={0xc0,0xf9,0xa4,0xb0,0x9,0x92,0x82,0xf8,0x80} sbit w1=b2^0; sbit w2=b2^1; sbit k1=b3^0; /=1表示键盘按下 char cou... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
groundhappy
2011-10-23 · TA获得超过722个赞
知道答主
回答量:146
采纳率:0%
帮助的人:117万
展开全部
PUSH AX
PUSH BX
POP AX
POP BX
核心代码
更多追问追答
追问
能解释一下每行的意思吗?真心是初学者
追答
3000H压栈
5000H压栈
5000H出栈放到AX
3000H出栈放到BX
堆栈是先进后出的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2020-12-10 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.5亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式