汇编程序mov al,[si]的意思 急 谢啦

 我来答
flycat0511
2011-06-24 · TA获得超过1402个赞
知道小有建树答主
回答量:363
采纳率:100%
帮助的人:384万
展开全部
将si所指向地址存储单元中的数据送给al,比如si=1000h,那[si]表示便宜地址为1000h单元里面存储的数据,假设1000h地址单元里存放的是81h,则把81h送给al,即al=81h。
追问
mov bl,[si]
clc
call fact
clc
sub bl,ch
lea dx,info4
mov ah,9
int 21h
call show

这些都什么意思啊 谢谢哈
追答
你这段程序不全,call fact和call show都是调用子程序,但是没给出子程序fact和show的具体内容,还有info4也没有定义
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过100... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
yunlkong
2011-07-09 · TA获得超过5711个赞
知道大有可为答主
回答量:9695
采纳率:0%
帮助的人:1.9亿
展开全部
main()
{
unsigned char *s,*e="ABcd",*c="你好";
clrscr();
printf("English char =");

s=e;
while(*s!=0) /*C的字符串以0为结束符*/
{
printf("%3d,",*s);
s++;
}
printf("\nChinease char=");
s=c;
while(*s!=0)
{
printf("%3d,",*s);
s++;
}
getch();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汝嫣汐2459
2011-06-26 · TA获得超过264个赞
知道答主
回答量:453
采纳率:0%
帮助的人:321万
展开全部
;计算6328h+4658h+3761h,然后把和传递给变量cjg
org 100h ;设置代码段初始地址
cjg dw ? ;设置字型变量cjg
mov bx,6328h ;bx=6328h
add bx,4658h ;bx=6328h+4658h
mov ax,3761h ;ax=3761h
add ax,bx ;ax=6328h+4658h+3761h
mov cjg,ax ;cjg=ax=6328h+4658h+3761h
hlt ;结束

;分别计算data30个数中的正负数的和,然后计算30个数的平均数
ORG 100H
JMP BBB ;跳至BBB处执行
;定义变量
AV DB ?
NP DW ?
NM DW ?
DATA DW 16,16,16,16,16,15,15,15,15,15,14,14,14,14,14,-3,-3,-3,-3,-3,-5,-5,-5,-5,-5,-15,-15,-15,-15,-15

BBB: LEA SI,DATA ;取DATA的有效地址,存于SI
MOV CL,30 ;计数器设置为30次
A: MOV AX,[SI] ;ax=data[0]
TEST AX,1000H ;判断DATA当前数的正负
JNZ NEXT ;负数跳至NEXT处
ADD BX,AX ;正数累加bx=bx+ax
JMP B ;跳至B处
NEXT: ADD DX,AX ;负数累加dx=dx+ax
B: ADD SI,2 ;有效地址加2,转至data下一个数
LOOP A ;转至A,循环执行
MOV NP,BX ;正数和存于NP
MOV NM,DX ;负数和存于NM
ADD BX,DX ;正负数求和
MOV AX,BX ;设置被除数
MOV BL,30 ;设置除数
IDIV BL ;计算平均值
MOV AV,AL ;平均值存于AV
HLT

;求平方和1^2+2^2+3^2+...+n^2不大于1000时,n的最大值
ORG 100H
JMP D
N DW ?
D: MOV BX,1 ;设置加和的初始值1
MOV CX,0 ;初始化cx=0
A: MOV AX,BX
INC BX ;加和数加1
IMUL AX ;求AX的平方
ADD CX,AX ;累加求和,存于CX
CMP CX,1000 ;比较和是否大于1000
JNC C ;大于转至C处
JMP A
C: DEC BX ;n-1
MOV N,BX ;把最后求的n值赋予变量N
HLT

;判断N中所有数的正负,并把所有数转换成正数后存于变量NI
ORG 100H
JMP D
N DB 1,2,3,4,5,6,7,8,9,10,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10
NI DB 20 DUP(0)
D: LEA SI,N ;把变量N的初始地址赋予SI
LEA DI,NI ;把变量NI的初始地址赋予DI
MOV CL,20 ;设置循环次数20次
A: MOV AL,[SI] ;al=[si]
INC SI ;si++
TEST AL,80H ;判断AL的正负
JNZ NEXT ;负数转至next
MOV [DI],AL ;正数存于变量NI
INC DI ;di++
LOOP A ;循环判断N中所有数
NEXT: NEG AL ;转换负数转换为正数
MOV [DI],AL
INC DI
LOOP A
HLT

;最后一个程序有点问题,不过大概意思是说连续输入3个字符,比较3个字符的
;大小然后对应输出字符串A1,B1,C1
ORG 100H
JMP PP
A1 DB 0DH,0AH,'3YES','$'
B1 DB 0DH,0AH,'2YES','$'
C1 DB 0DH,0AH,'3ON','$'
PP:MOV AH,01H ;调用DOS功能,键盘输入一个字符
INT 21H
MOV BL,AL ;输入字符存入BL
MOV AH,01H ;二次输入
INT 21H
MOV CL,AL ;存于CL
MOV AH,01H ;三次输入
INT 21H
CMP AL,BL ;比较第三次和第一次输入
JNC AAAA ;第3次的大于第1次转至AAAA
CMP CL,BL ;否则比较第二次和第一次输入
JNC B2 ;第二次大于第三次转至B2
JMP A2 ;否则转至A2
AAAA: CMP AL,CL ;比较第三次和第二次
JNC CCCC ;第三次大于第二次转至CCCC
JMP B2 ;否则跳至B2
CCCC:CMP CL,BL ;比较第二次和第一次
JNC C2 ;第二次大于第一次转至C2
JMP B2 ;否则跳至B2
A2:MOV AH,0AH ;显示字符串A1
LEA DX,A1
MOV AH,09H
INT 21H
HLT
B2:LEA DX,B1 ;显示字符串B1
MOV AH,09H
INT 21H
HLT
C2:LEA DX,C1 ;显示字符串C1
MOV AH,09H
INT 21H
HLT
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式