当前位置:首页 » 编程语言 » c语言和汇编例题
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言和汇编例题

发布时间: 2022-05-29 14:22:28

c语言基础问题,汇编语言,请看下题应该选择什么

厂商值的是硬件和软件的出品商,比如Windows是微软的,还比如主板上的BIOS是指硬件上的。所以确实是提前编译好的。这里你只需要去用就行
这个题目比较刁钻。这个引号内的汇编很迷惑人。程序运行难道不是编译吗?这个时候如果我不看题的话。也会选D的

㈡ 单片机。分别使用c语言和汇编语言编写一个程序

#include<reg52.h>

unsignedcharaa_at_0x30;

voidmain()
{
IE=0x81;
IT0=1;
aa=0;
while(1);
}

X0_INT()interrupt0
{
aa++;
aa%=100;
}

//====================

ORG0000H
LJMPSTART
INC30H
MOVA,#100
CJNEA,30H,EXIT
MOV30H,#0
EXIT:
RETI

START:
MOVIE,#81H
SETBIT0
MOV30H,#0
SJMP$
END


上面两个程序,均经过试验,可以满足题目要求。

㈢ [悬赏]求解C语言汇编题目

1、程序流程图分析与改写

因为参考程序流程图中存在两个if分支交叉的情况,这种程序流程无法直接用循环结构实现,所以需要对程序流程图进行改写。

在改写之前需要对整个流程图进行分析。

moose@debian:~/p_project/2015xxxx_网络知道/c_cam$./a.out
r0=45.000000,phi=0.000000,s=0.000000,ds=0.375000,a=0.151973,amax=0.151973,x=45.705578,y=-8.000000,X=36.347839,Y=-9.637916,xc=0.000000,yc=0.000000
r0=45.000000,phi=1.000000,s=0.000171,ds=0.000514,a=0.151973,amax=0.151973,x=17.963154,y=34.137642,X=14.285400,Y=25.378410,xc=0.000000,yc=0.000000
...
r0=45.000000,phi=119.000000,s=0.020388,ds=-44.188843,a=0.849510,amax=0.849510,x=45.426483,y=-24.410582,X=36.129913,Y=-22.455133,xc=0.000000,yc=0.000000
r0=45.000000,phi=120.000000,s=0.020559,ds=-44.563328,a=0.849509,amax=0.849510,x=32.584461,y=20.035658,X=25.916046,Y=13.269401,xc=0.000000,yc=0.000000
r0=45.000000,phi=121.000000,s=45.000000,ds=0.000000,a=0.087970,amax=0.849510,x=-12.404583,y=90.987427,X=-11.110419,Y=81.575989,xc=0.000000,yc=0.000000
...
r0=45.000000,phi=180.000000,s=45.000000,ds=0.000000,a=0.087970,amax=0.849510,x=-47.874447,y=-67.881332,X=-42.879730,Y=-59.800316,xc=0.000000,yc=0.000000
r0=45.000000,phi=181.000000,s=44.999592,ds=30.035320,a=0.237949,amax=0.849510,x=39.310745,y=-87.747360,X=35.209457,Y=-79.178261,xc=0.000000,yc=0.000000
r0=45.000000,phi=182.000000,s=44.999187,ds=30.534101,a=0.237950,amax=0.849510,x=90.353180,y=-26.939114,X=80.926598,Y=-25.760328,xc=0.000000,yc=0.000000
...
r0=45.000000,phi=360.000000,s=0.000000,ds=0.000000,a=0.173278,amax=0.849510,x=-20.637590,y=46.097324,X=-16.412260,Y=37.588707,xc=0.000000,yc=0.000000

㈣ c语言基础知识问题:1.每一条汇编语言都有一条机器指令与之对应。2.一条机器指令对应一条汇编语言语句

1是错的。汇编语言的指令中,有一些属于伪指令,比如段定义指令:
dseg segment
再比如
a db '1234'
b equ $-a ;计算a的字节长度。这个也不属于机器指令

㈤ c语言和汇编语言混合编程,键盘输入4个十进制数,用汇编语言计算这四

codesegment
assumecs:code
org100h
start:
pushcs
popds
pushcs
popes
callinputnum
movcx,num
movax,0
leasi,array
@1:
addax,[si]
incsi
incsi
loop@1
movbx,num
divBL
xorah,ah
calldispnum
movah,4ch
int21h


;键盘输入数值数组子程序(数组名为array,元素个数存放在num中)
inputnumprocnear
;输入的数据以一个空格分隔,以回车符结束输入
leadi,array;将数组第一个元素的有效地址置入DI
movwordptr[num],0
stin:
movax,0
pushax
again1:
movah,1
int21h
movbyteptr[char],al
cmpal,13
jeline0
cmpal,''
jeline0
subal,30h
movah,0
movsi,ax
popax
movcl,10
movch,0
mulcx
addax,si
pushax
jmpagain1
line0:
popax
movwordptr[di],ax
incwordptr[num]
cmpbyteptr[char],13
jestinend
incdi
incdi
jmpstin
stinend:
ret
arraydw100p(0)
numdw0
chardb?
inputnumendp

;显示十进制整型数值子程序
dispnumprocnear
;将要显示的数据放入AX中
movdx,0
movbx,10
divbx
movbyteptr[y+6],dl;保存个位
movdx,0
divbx
movbyteptr[y+5],dl;保存十位
movdx,0
divbx
movbyteptr[y+4],dl;保存百位
movdx,0
divbx
movbyteptr[y+3],dl;保存千位
movbyteptr[y+2],al;保存万位

moval,byteptr[y+2]
addal,30h;万位转ASC2
movbyteptr[y+2],al

moval,byteptr[y+3]
addal,30h;千位转ASC2
movbyteptr[y+3],al

moval,byteptr[y+4]
addal,30h;百位转ASC2
movbyteptr[y+4],al

moval,byteptr[y+5]
addal,30h;十位转ASC2
movbyteptr[y+5],al

moval,byteptr[y+6]
addal,30h;个位转ASC2
movbyteptr[y+6],al

movdi,1
disp1:
incdi
cmpdi,6
jedispexit
cmpbyteptr[y+di],'0'
jnedispexit
movbyteptr[y+di],''
jmpdisp1
dispexit:
movah,9
leadx,y
int21h
ret
ydb10,13,0,0,0,0,0,'$'
dispnumendp

code ends
endstart

请在未来汇编环境中调试运行。

㈥ c语言编程题

#include <stdio.h>

#include <math.h>

int main()

{

double x,y;

scanf("%lf",&x);

if(x<=-2)

y=-pow(exp(1),2*x+1)+3;

else if(x<=3)

y=2*x-1;

else

y=2*log10(3*x+5)-11;

printf("%lf ",y);

return 0;

}

㈦ 初学编程,大家帮忙看下这道c语言题怎么做万分感谢

先给你第一题的,网络知道的这个编辑器真的不适合粘贴代码

#include<stdio.h>

#include<string.h>

#define MAX_ARRAY_SIZE 1024

#define MAX_MAP_SIZE 10


/* 输入数组,连续输入,如:aedabcdaeas */

int inputArray(char *buff) {

int len = 0;

/* 使用fgets来防止缓冲区溢出 */

if (NULL == fgets(buff, MAX_ARRAY_SIZE, stdin)) {

return 0;

}

len = strlen(buff);

/* fgets 返回的数据可能是换行符结尾的,也可能不是,对换行符结尾的进行处理 */

if (buff[len - 1] == ' ') {

buff[len - 1] = '';

len -= 1;

}

return len;

}

int processArray(int len, char *chars, char *map) {

/* 保存反向映射便于查找 */

int tmap[128];

int maplen = 0;

int i = 0;

char *p = chars;

memset(tmap, -1, sizeof(int) * 128);

for (i = 0; i < len; i++) {


if (*p > 'z' || *p < 'a') {

return -*p;

}

if (tmap[*p] == -1) {

if (maplen >= MAX_MAP_SIZE) {

return -1;

}

tmap[*p] = maplen;

map[maplen] = *p;

maplen += 1;

}

*p = '0' + tmap[*p];

p++;

}

return maplen;

}

int main() {

/* 用于输入的字符数组 */

char buff[MAX_ARRAY_SIZE];

/* 用于保存转换规则的数组 */

char map[MAX_MAP_SIZE];

/* 保存字符数组长度 */

int len = 0;

int maplen = 0;

int i = 0;


len = inputArray(buff);


if (len <= 0) {

puts("Cancelled");

} else if (len < 10) {

puts("Not enough 10 chars");

} else {


maplen = processArray(len, buff, map);

if (maplen >= 0) {

puts("转换结果:");

for (i = 0; i < len; i++) {

printf("%c ", buff[i]);

}

puts("");

puts("映射规则:");

for (i = 0; i < maplen; i++) {

printf("%c -> %d ", map[i], i);

}

puts("");

} else if (maplen == -1) {

puts("Different Chars count is OverLimit of 10");

} else if (maplen <= -2) {

printf("Unexpected char %c ", -maplen);

}

}

return 0;

}

执行结果:

㈧ C语言及汇编编程各一题

//段地址在DS中,自己设置。
MOV AX,[30H]
CMP AX,3CH
JA ABOVE
JE EQUAL
MOV [31H],0
JMP DONE

ABOVE: MOV[31H],BYTE PTR 2
JMP DONE

EQUAL: MOV[31H],BYTE PTR 1
DONE:

//第2题
#include<stdio.h>
void main()
{
int T0,T1;
cout<<"输入华氏温度:";
cin>>T0;
T1=5*(T0-12)/9;
cout<<"摄氏温度:"<<T1<<endl;
}

㈨ C语言+汇编 难题 大牛请进

1、有效地址EA就是相对于一个基准地址的偏移,就是偏移地址。不过你的题目有问题,没明白意思。
立即寻址就是直接把立即数存到寄存器;
直接寻址就是直接给出偏移地址,把偏移地址中存的数存进目的寄存器;
BX可以用于基址变址(就是在基地址上再加一点变化,产生相对偏移)
寄存器寻址就是把直接寻址中直接给出的地址先存入一个寄存器,再利用这个寄存器来给出。
2、确定91是10进制吗?假设是16进制数:1001 0001
+1011 1010
------------
舍 1)0100 1011
则有溢出 OF=1
结果非0,全零标志ZF=0
有进位,进位借位标志CF=1
最高位是0,符号0,SF=0
低4位向高4位无进、借位,故
半进位、借位标志AF=0(亦称为辅助进位标志)

如果题目中是10进制的数的话,该会自己推了吧!