
1
DATA SEGMENT
SRC DB 'How are you'
DES DB 'are'
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SI,OFFSET SRC
MOV DI,OFFSET DES
LOP: MOV CX,3
CLD
REPZ CMPSB
CMP CX,0
JZ NEXT
MOV DI,OFFSET DES
ADD SI,CX ;si-(3-cx)+1
SUB SI,2
JMP LOP
NEXT: AND DH,0
MOV DX,SI ;SI存放'are'出现的末位置
SUB DL,3
ADD DL,30H ;显示位'are'的起始位置
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
2
DATA SEGMENT
BUFFER DB 'How are you',00H
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUFFER
LOP1: MOV BL,[SI]
CMP BL,20H
JNZ NEXT ;如果为逗号,将后面的数据前移
MOV DI,SI
LOP2: MOV BL,[DI+1]
MOV [DI],BL
INC DI
MOV BL,[DI]
CMP BL,0H ;如果为00,跳出内循环
JNZ LOP2
NEXT: INC SI
MOV BL,[SI]
CMP BL,0H ;如要[SI]小于为00H,跳出循环
JNZ LOP1
MOV AH,4CH
INT 21H
CODE ENDS
END START
3
DATA SEGMENT
BUF DB 60
N DB
CHAR DB 60 DUP(0)
STR DB 'INPUT NUM:','$'
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STR
MOV AH,9
INT 21H
MOV DX,OFFSET BUF
MOV AH,10
INT 21H
MOV AH,2
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
MOV CL,N
MOV SI,OFFSET CHAR
AND BH,0
MOV BL,N
ADD SI,BX
LOP1: DEC SI
MOV DL,[SI]
MOV AH,2
INT 21H
LOOP LOP1
MOV AH,4CH
INT 21H
CODE ENDS
END START
4
DATA SEGMENT
BUF DW 1234H,3456H,2134H,7893H,3456H
RESULT DW 0,0
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:CODE,SS:STACK,CS:CODE
START: MOV AX,DATA
MOV DS,AX
CALL PLUS_N
MOV SI,OFFSET RESULT
MOV BX,[SI+2]
CALL DISPLAY
MOV BX,[SI]
CALL DISPLAY
MOV AH,4CH
INT 21H
;功能:计算多字节相加
;入口参数:BUF
;出口参数:RESULT
PLUS_N PROC
AND DX,0
AND AX,0
MOV CL,5
MOV SI,OFFSET BUF
LOP: ADD AX,[SI]
ADC DX,0
INC SI
INC SI
LOOP LOP
MOV SI,OFFSET RESULT
MOV [SI],AX
MOV [SI+2],DX
RET
PLUS_N ENDP
;功能:显示十六进数
;入口参数:BX
DISPLAY PROC
MOV CH,4
LOP1: MOV CL,4
ROL BX,CL
MOV DL,BL
AND DL,0FH
ADD DL,30H
CMP DL,3AH
JB NEXT
ADD DL,7
NEXT: MOV AH,2
INT 21H
DEC CH
CMP CH,0
JNZ LOP1
RET
DISPLAY ENDP
CODE ENDS
END START
你的答案是错的
答案是ax=2,bx=4,cx=2,dx=2 你可以自己编写一个程序调试
START:MOV AX,01H
MOV BX,02H
MOV CX,03H
MOV DX,04H
;前面4行使ax=1,bx=2,cx=3,dx=4
NEXT:INC AX ;ax+1执行后ax=2
ADD BX,AX ;bx=bx+ax执行后bx=4
SHR DX,1 ;dx向右移一位,相当于dx除于2,执行后dx=2
LOOPE NEXT ;重点来了,这一行的loope他的执行具体是,先使cx减1,然后再判断cx是否等于零,并且判断标志位ZF是否等于1,如果cx<>0并且zf=1那么就转到标号,否则退出循环上一行的shr dx1是影响ZF的,结果ZF是等于0,所以这里退出循环,执行完后cx=2
1)原代码x没声明,算法有错误。
#include "stdioh"int main(void){
int i,n;
float s=00,x,t1=00,t2=10;
printf("x,n=");
scanf("%f,%d",&x,&n);
for(i=1;i<=n;i++){
t1=t1+x;
t2=t2/i;
s=s+t1t2;
}
printf("s=%f\n",s);
return 0;
}
2)原代码书写不规范,过不了编译;注意间隔,改一下就行。余无错。
3)问题同2)。余无错。
4)
#include "stdioh"#include "stdlibh"
#include "timeh"
int main(void){
int a[50],i;
float av=0;//平均数一般不是整数
srand((unsigned)time(NULL));//要加上这一句,不然随机数千篇一律
for(i=0;i<50;i++){
a[i]=rand()%90+10;//C的随机函数是rand
av=av+a[i];
printf("%4d",a[i]);
}
printf("\n");
av=av/20;
for(i=0;i<20;i++)
if(a[i]<av)
printf("%5d",a[i]);
return 0;
}
你的代码书写很不规范,造成编译不过问题,比如chara[10]、#defineN 20等,间隔上哪去了?要注意一下。
第1个答案:1,2,3
1,2,5
第2个答案:是6 try()是C语言里面的关键字,最好不要用来当函数名
第3个答案:输出字符串(ps)的长度
第4个答案:y=876
第5个答案:9876
第6个答案:1
第7个答案:统计字符的个数
class Circle
{
double radius;
double diameter;
double area;
public Circle()
{
radius=1;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
thisradius = radius;
}
//下面这个方法用于计算机圆的直径
public double computeDiameter()
{
return 2radius;
}
public double computeArea()
{
return MathPIradiusradius;
}
}
public class TestCircle {
public static void main(String args[])
{
Circle c1=new Circle();
Circle c2=new Circle();
Circle c3=new Circle();
c2setRadius(5);
c3setRadius(10);
Systemoutprint("第一个圆的直径为:"+c1computeDiameter());
Systemoutprintln(" 面积为:"+c1computeArea());
Systemoutprint("第二个圆的直径为:"+c2computeDiameter());
Systemoutprintln(" 面积为:"+c2computeArea());
Systemoutprint("第三个圆的直径为:"+c3computeDiameter());
Systemoutprintln(" 面积为:"+c3computeArea());
}
}
一、填空题
1一个函数一般由两部分组成,它们分别是函数名和函数体。
2一个C语言的程序至少应包含一个主函数。
3函数体用{符号开始,用}符号结束。
4欲将一个16位二进制的整数变量的高8位清零,而只保留低8位,可用的方法是和0x00ff进行与运算。
5数组在内存中是一块连续的储存区,数组名代表首地址。
6函数直接或间接的自己调用自己,被称作函数的递归调用。
7函数在内部定义只在本函数内有效的变量叫内部变量,在函数以外定义的变量叫外部变量。
二、选择题
1下列变量中合法的是(没对的,A改成B_C_Tom就对,C改成_6a7b对)
A BCTom B3a6b C-6a7b D $ABC
2下面两对用户定义标识符哪个可读性最强(c)
A cheackquality B salarytotal C check-quality D sa-la-ry-tot-al
3设 int m=10,则下列表达式的值不等于0的有(D)
A m=10/110 B m==8 C ~m&m D ~(m|m)
4设 int x=25,则表达式 (x&20>>1)|(x>10|7&x^33)的值是(D)
A 35 B 43 C 42 D 41
5C语言中,逻辑“真”等价于(C)
A 大于0的数 B大于0的整数 C非0的数 D 非0的整数
6有段程序:int x=20; do{x/=2;}while(x--);请问此循环执行(A)次。
A 4 B 3 C 5 D不确定
7下面选项中,于if(a)等价的是(C)
A if(a==0) Bif(a!=0) Cif(a=0) D if(a==1)
8为判断字符串s1是否大于字符串s2,正确的语句是(C)
Aif(s1>s2) Bif(strlen (s1)>strlen(s2)) Cif(strcmp (s1,s2)>0) Dif (strcmp (s1,s2)==1)
以上就是关于汇编语言程序 题目请教 求高人解答!全部的内容,包括:汇编语言程序 题目请教 求高人解答!、汇编语言程序的一道题。求高手解答!!!、求解答一下C语言编程题,万分感谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)