汇编语言一道编程题,谢谢
为防抽,加一行汉字:程序如下:
dseg segment
Array DW 127FH,6786H,234EH, 96 dup (0),0FFFFH
org 0500h
max DW ?
min DW ?
dseg ends
cseg segment
assume ds:dseg, cs:cseg
start:
mov ax, dseg
mov ds, ax
lea bx, Array
mov cx, 99
mov ax, [bx]
mov max, ax
mov min, ax
add bx, 2
LoopFind:
mov ax, [bx]
cmp ax, max
jbe Skip1
mov max, ax
Skip1:
cmp ax, min
jae Skip2
mov min, ax
Skip2:
add bx, 2
loop LoopFind
mov ah, 4ch
int 21h
cseg ends
end start
在debug里运行到mov ah, 4ch这一句,然后用d ds:0500就能看到结果了。
一道汇编语言的程序编程题 谢谢啊
void swap(int *px,int *py)
{
int temp;
temp=*px;
*px=*py;
*py=temp;
}
int main()
{
int a,b;
a=10;
b=20;
printf("a=%d,b=%d\n",a,b);
printf("Swapping...\n");
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
swap(&a,&b);//将a和b的指针作为参数传递进swap,也就是int *px=&a,int *py=&b;
{
int temp;//定义临时变量temp
temp=*px;//对px解除指针,也就是把a的值赋给temp
*px=*py;//对px和py解除指针,也就是把b的值赋给a
*py=temp;//对py解除指针,也就是把temp的值的赋给b
}//结束
也可以用引用做同样的事
void swap(int &rx,int &rb)
{
int temp;
temp=rx;
rx=rb;
rb=temp;
}
int main()
{
int a=10,b=20;
int &ra=a,&rb=b;
printf("a=%d,b=%d\n",a,b);
printf("Swapping...\n");
swap(ra,rb);
printf("a=%d,b=%d\n",a,b);
}//对引用进行操作就相当于对引用指向的变量操作
如果用实参的话,不起作用
void swap(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
int main()
{
int a=10,b=20;
printf("a=%d,b=%d\n",a,b);
printf("Swapping...\n");
swap(a,b);
printf("a=%d,b=%d\n",a,b);
}//a和b的值不会交换
因为传递进swap参与运算的a,b其实是main()函数中的a,b的副本,是swap中的临时变量,函数结束就消亡了。副本a,b发生改变,真身a,b不会改变
求一道51单片机编程题的程序,汇编语言,谢谢了
JISHI EQU 30H
DATA0 EQU P0
TEN EQU P1.0
UNIT0 EQU P1.1
ORG 0000H
ORG 0003H
LJMP INP0 //interruter 0
ORG 000BH
LJMP IT_T0
ORG 0013H
LJMP INP1 //interruter1
ORG 0030H
MAIN:
MOV SP,#69H
MOV JISHI,#0
MOV DATA0,#0FFH
SETB TEN
SETB UNIT0
MOV TMOD,#01H
MOV TH0,# 0
MOV TL0,#0
SETB IT0
SETB IT1
SETB PX0
SETB PX1
SETB ET0
SETB EX0
SETB EX1
SETB EA
CLR TR0
LOOP: LCALL DISPLAY
LJMP LOOP
INP0: CLR EA
CLR TR0
SETB EA
RETI
INP1: CLR EA
SETB TR0
SETB EA
RETI
IT_T0:
PUSH ACC
PUSH B
CLR EA
INC JISHI
MOV A,JISHI
CJNE A,#60,TIME0
MOV JISHI,#0
TIME0: POP B
POP ACC
SETB EA
RETI
DISPLAY: MOV A,JISHI
MOV B,#10
DIV AB
LCALL LOOKUP
MOV DATA0,A
CLR TEN
SETB UNIT0
LCALL DELAY
SETB TEN
MOV A,B
LCALL LOOKUP
MOV DATA0,A
CLR UNIT0
LCALL DELAY
SETB TEN
SETB UNIT0
RET
LOOKUP:
MOV DPTR,#TAB
MOVC A,@A+DPTR
RET
DELAY: MOV R6,#0
DEL0: MOV R7,#0
DJNZ R7,$
DJNZ R6,DEL0
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,89H,0F8H,80H,90H
END
有部分问题的,自己查