汇编语言,最好写出整个程序代码,关键在于两个子程序的代码,一定要带注释!!!谢!高分求

作者&投稿:阮音 (若有异议请与网页底部的电邮联系)
汇编语言,问题求详解以及解决方法!程序代码多,给个链接!~

将DATA SEGMENT...ENDS
改为DATA SEGMENT ...DATA DNDS
编译、链接、运行如下

STACK SEGMENT STACK 'STACK'
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX

MOV CX,8
AGAIN:SHL BL,1
MOV DL,0
ADC DL,30H
MOV AH,2
INT 21H
LOOP AGAIN
MOV AH,4CH
INT 21H
CODE ENDS
END START

以下子程序假设默数组认放在DS段中,其中的数据为dw型。调用子程序前的参数设置:BX中存放数组的起始偏移地址,CX中存放数组的长度。调用子程序后,数组的最大值放在CX中。

array_max: push ax

mov ax,[bx] ;把数组第一个数放到ax中
find: cmp ax,[bx] ;把ax中的数与数组中的数逐个进行比较
ja next ;如果ax中的数比数组中当前的数大则转到next
mov ax,[bx] ;如果ax中的数小于或等于数组中当前的数,则进行替换
next: add bx,2 ;对比下一个数
loop find

mov cx,ax ;把找出的最大值放入cx中
pop ax
ret

; 输入的五位数字,第一位为符号位,当符号位为0时为正数,否则为负数

; 后四位为参数计算的数字,输出结果同上

assume cs:codesg,ds:datasg,ss:stacksg

datasg segment

input1 db 'Input first number! ','$'

input2 db 'Input second number! ','$'

result db 'result is : ','$'

; 21号中断10号例程,存放输入数据

add1 db 6 ; 缓冲区最大容量

db ? ; 实际上接收字符的个数,不包括最后的回车

db 6 dup (?) ; 存放输入的字符,回车结尾

add2 db 6

db ?

db 6 dup (?)

num dw ? ; 存放中间结果

sign db ? ; 两个数和的符号位

sum dw 10 dup (?) ; 两个数的和

datasg ends

stacksg segment

stacksg ends

codesg segment

 start: mov ax,datasg

mov ds,ax

lea dx,input1

mov ah,9

int 21h

; 读取第一个加数

mov dx,offset add1

mov ah,10

int 21h

; 取光标位置,ah为行,al为列

mov ah,3

mov bh,0

int 10h

; 设置光标位置

mov ah,2

mov bh,0

inc dh

mov dl,0

int 10h

lea dx,input2

mov ah,9

int 21h

; 读取第二个加数

mov dx,offset add2

mov ah,10

int 21h

; 取光标位置,ah为行,al为列

mov ah,3

mov bh,0

int 10h

; 设置光标位置

mov ah,2

mov bh,0

inc dh

mov dl,0

int 10h

lea bx,add1

mov ax,[bx+1]

mov ah,0

dec ax ; 除去符号位,得到数字个数

push ax ; 压入字符数量

add bx,3

push bx ; 压入字符串首地址

call DeciToBina

lea bx,add1

mov dl,[bx+2] ; 取输入的数字的符号位

cmp dl,'0'

jz posi1

neg ax ; 符号位不为0,则表示负数,所以求补得到负数

posi1:

lea bx,num

mov [bx],ax ; 保存第一个数

lea bx,add2

mov ax,[bx+1]

mov ah,0

dec ax

push ax ; 压入字符数量

add bx,3

push bx ; 压入字符串首地址

call DeciToBina

lea bx,add2

mov dl,[bx+2]

cmp dl,'0'

jz posi2

neg ax

posi2:

lea bx,num

add [bx],ax ; 保存两个数相加的结果

lea dx,result

mov ah,9

int 21h

lea bx,num

mov ax,[bx] ; 取出两个数的和

push ax ; 保存一个备份

; 测试结果的符号位

and ax,1000000000000000b ; 取最高位

neg ax

sbb ax,ax

neg ax ; ax的值是0或1

add ax,30h ; 转为0或1的ascii码

lea bx,sign

mov [bx],al ; 存入符号位

pop ax ; 取出备份

cmp byte ptr [bx],30h ; 测试结果是否为正数

jz posi

neg ax ; 不为正,则求补取绝对值

posi:

push ax ; 压入第二个参数,即待转换的十六进制数的绝对值

lea di,sum

push di ; 压入第一个参数,接收结果的缓冲区

call BinaToDeci

lea dx,sign

mov ah,9

int 21h

mov ax,4c00h

int 21h

; ***********************************************************************

; 作用:将十六进制数,转为十进制字符,用以输出

; 形式:void BinaToDeci( [buff], int ),从右向左依次压入堆栈

; 参数1:第一个参数 [buff]:接收结果的缓冲区地址

; 参数2:第二个参数int :待转换的十六进制数字

; 返回值:无,直接保存到内存中

; ***********************************************************************

BinaToDeci proc

push bp

mov bp,sp

push ax

push bx

push cx

push dx

mov cx,0 ; 初始化计数器,记录循环次数,即十进制数的位数

mov ax,[bp+6] ; 取出传入的待转换十六进制数,段内调用只加6,段间调用加8

; 计算出十进制各位数字,并保存到堆栈

bina_next:

xor dx,dx

mov bx,10

div bx

push dx

inc cx

cmp ax,0

jz bina_end

jmp bina_next

bina_end:

mov bx,[bp+4] ; 取出保存十进制数的缓冲区首地址

; 将十进制的各个位数转换成ascii码,并存入指定的内存区域

bina_next2:

pop ax

add ax,30h

mov byte ptr [bx],al

inc bx

loop bina_next2

; 字符串以'$'结尾,用以调用21号中段的9号例程

mov byte ptr [bx],'$'

pop dx

pop cx

pop bx

pop ax

mov sp,bp

pop bp

ret 4

BinaToDeci endp

; ***********************************************************************

; ***********************************************************************

; 作用:将十进制字符,转换为十六进制数,用以计算

; 形式:void DeciToBina( [buff], int ),从右向左依次压入堆栈

; 参数1:第一个参数 [buff]:放置十进制数字字符串的缓冲区的首地址

; 参数2:第二个参数int :十进制字符串的字符个数

; 返回值:十六进制的数字

; ***********************************************************************

DeciToBina proc

push bp

mov bp,sp

push bx

push cx

push dx

push si

mov bx,[bp+4] ; 取放置十进制字符串缓冲区的首地址

mov cx,[bp+6] ; 十进制数字字符串的字符个数

xor ax,ax

; 将ascii码还原为数字,并保存到堆栈

deci_next:

mov al,byte ptr [bx] ; 依次取缓冲区内的字符

sub al,30h

push ax

inc bx

loop deci_next

mov cx,[bp+6] ; 再次获得字符的个数

xor ax,ax

xor dx,dx

mov bx,1 ; 用作乘数

xor si,si

; 各位相乘然后累加获得十六进制数值

; 结果=个位*1+十位*10+百位*100+千位*1000

deci_next1:

pop ax ; 取出数字

mul bx ; 相乘

add si,ax ; 累加结果

; 计算下次相乘时的乘数

mov ax,bx

mov bx,10

mul bx

mov bx,ax

loop deci_next1

; 将结果存入ax,为返回值

mov ax,si

pop si

pop dx

pop cx

pop bx

mov sp,bp

pop bp

ret 4

DeciToBina endp

; ***********************************************************************

codesg ends

end start 

=====================================================

masm5测试通过



试一下要多久,现在开始,阿门。。。 

emu8086编译测试通过,附运行测试截图

====================================

; multi-segment executable file template.

data segment

    ; add your data here!

    oper1 dw 0000h

    ;oper2

    sum  db 5 dup(00h) 

    altemp db 00h          

    message1 db 'The first  number  :','$'

    message2 db 'The sec0nd number  :','$'

    message3 db 'The sum of them is:','$'

    

    message4 db 0dh,0ah,'The input number begins with - or + and end with enter or four bits','$'

    message5 db 'Press ESC to exit or any other key to contiune','$'

    

ends

stack segment

    dw   128  dup(0)

ends

code segment

start:

; set segment registers:

    mov ax, data

    mov ds, ax

    mov es, ax

    ; add your code here

    ;inputoper1:

    call newlinebegin

    lea dx, message1

    mov ah, 09h

    int 21h        ; output string at ds:dx

    

    call readsign;   the sign would be in dl(zero label '-';nzero label '+')

    call readabsval;  the asbval would be in bx

    cmp dl,00h

    jz negative1

    mov oper1,bx

    jmp inputoper2

    negative1:

    xor ax,ax

    sub ax,bx

    mov oper1,ax

    

     

    inputoper2:

    call newlinebegin            

    lea dx, message2

    mov ah, 09h

    int 21h        ; output string at ds:dx

    

    call readsign;   the sign would be in dl(zero label '-';nzero label '+')

    call readabsval;  the asbval would be in bx

    cmp dl,00h

    jz negative2

    mov ax,bx

    jmp out_result

    negative2:

    xor ax,ax

    sub ax,bx  

    

       

    out_result:   

    push ax

    call newlinebegin         

    lea dx, message3

    mov ah, 09h

    int 21h  ; output string at ds:dx 

    pop ax             

    ;ax=oper2

    mov bx,oper1 ;bx=oper1

    add ax,bx    ;ax=sum of oper1 and oper2

    call outresult;

    

    

    call newlinebegin         

    lea dx, message5

    mov ah, 09h

    int 21h  ; output string at ds:dx

    mov ah,08h

    int 21h

    cmp al,1bh

    jz exit

    

    call newlinebegin         

    lea dx, message4

    mov ah, 09h

    int 21h  ; output string at ds:dx  

    jmp start

     

    exit:

    mov ax, 4c00h ; exit to operating system.

    int 21h

            

     ;---------------------------------------       

    ;call readabsval

    readabsval proc near

        ;in: none

        ;out: bx=the operator 

        push ax

        push cx

        push dx

        xor bx,bx

        mov cx,04h        

max4bcd:call readchar_numorenter

        cmp al,0dh

        jz readabsvalout

        mov altemp,al

        mov ax,bx

        mov bx,0ah

        mul bx

        mov bx,ax

        mov al,altemp

        xor ah,ah

        add bx,ax

        loop max4bcd

readabsvalout: 

        pop dx

        pop cx

        pop ax

        ret

     readabsval endp 

    

    ;--------------------------------------- 

    ;call readchar_numorenter

    readchar_numorenter proc near

        ;in: none

        ;out: al=the numval or enter 

        push dx

  readchar_numorenterredo:mov ah,08h

        int 21h

        cmp al,0dh

        jz readchar_numorenterout

        cmp al,30h

        jl readchar_numorenterredo

        cmp al,39h

        jg readchar_numorenterredo

        

        mov ah,02h

        mov dl,al

        int 21h

        sub ax,0230h

  

        

        readchar_numorenterout:

        pop dx 

        ret

     readchar_numorenter endp                

    

    ;---------------------------------------  

    ;call readsign

    readsign proc near

        ;in: none

        ;out: dl= zero - or nzero +  

        push ax

   rereadsign:

        mov ah,08h

        int 21h

        cmp al,2bh

        jz oppsign

        cmp al,2dh

        jz negsign

        jmp  rereadsign

        negsign:

        mov dl,2dh

        mov ah,02h

        int 21h

        xor dl,dl

        pop ax

        ret 

        oppsign:

        mov dl,2bh

        mov ah,02h

        int 21h

        mov dl,01h

        pop ax

        ret

     readsign endp

        

     ;--------------------------------------- 

     ;call outresult;  

     outresult proc near

        mov bx,ax 

        js outnegtive

        mov dl,2bh

        jmp outresultval

        outnegtive:

        mov dl,2dh

        neg bx

        outresultval:

        ;outsign

        mov ah,02h

        int 21h

        ;out absval

        lea di,sum

        add di,04h

        mov ax,bx

        mov bx,0ah

        

        mov cx,05h

  sent: xor dx,dx

        div bx

        add dl,30h

        mov [di], dl

        dec di

        loop sent

        

        lea si,sum

        mov bl,00h;as a flat of head zero

        mov ah,02h

        mov cx,05h

        

out_Dnum: mov dl,[si]

        cmp dl,30h

        jnz outnum

        test bl,01h

        jnz outnum

        cmp cx,01h

        jz outnum

        jmp outvalcontinue

 outnum:mov bl,01h

        int 21h

 outvalcontinue: inc si

         loop out_Dnum 

         ret

     outresult endp                           

     

     ;--------------------------------------- 

     ;call newlinebegin

     newlinebegin proc near

        push ax

        push dx

        

        mov ah,02h

        mov dl,0dh

        int 21h

        mov dl,0ah

        int 21h

        

        pop dx

        pop ax

        ret

     newlinebegin endp            

ends

end start ; set entry point and stop the assembler.

====================================

masm5.0测试通过版本

data segment

    oper1 dw 0000h

    sum  db 5 dup(00h) 

    altemp db 00h          

    message1 db 'The first  number  :','$'

    message2 db 'The sec0nd number  :','$'

    message3 db 'The sum of them is:','$'

    message4 db 0dh,0ah,'The input number begins with - or + and end with enter or four bits','$'

    message5 db 'Press ESC to exit or any other key to contiune','$'

data ends

stack segment

    dw   128  dup(0)

stack ends

code segment

assume cs:code,ds:data,ss:stack,es:data

start:

    mov ax, data

    mov ds, ax

    mov es, ax

    call newlinebegin

    lea dx, message1

    mov ah, 09h

    int 21h      

    

    call readsign

    call readabsval

    cmp dl,00h

    jz negative1

    mov oper1,bx

    jmp inputoper2

    negative1:

    xor ax,ax

    sub ax,bx

    mov oper1,ax

    

     

    inputoper2:

    call newlinebegin            

    lea dx, message2

    mov ah, 09h

    int 21h        

    

    call readsign

    call readabsval

    cmp dl,00h

    jz negative2

    mov ax,bx

    jmp out_result

    negative2:

    xor ax,ax

    sub ax,bx  

    

       

    out_result:   

    push ax

    call newlinebegin         

    lea dx, message3

    mov ah, 09h

    int 21h  ; output string at ds:dx 

    pop ax             

    ;ax=oper2

    mov bx,oper1 ;bx=oper1

    add ax,bx    ;ax=sum of oper1 and oper2

    call outresult;

    

    

    call newlinebegin         

    lea dx, message5

    mov ah, 09h

    int 21h  ; output string at ds:dx

    mov ah,08h

    int 21h

    cmp al,1bh

    jz exit

    

    call newlinebegin         

    lea dx, message4

    mov ah, 09h

    int 21h  ; output string at ds:dx  

    jmp start

     

    exit:

    mov ax, 4c00h ; exit to operating system.

    int 21h

            

     ;---------------------------------------       

    ;call readabsval

    readabsval proc near

        ;in: none

        ;out: bx=the operator 

        push ax

        push cx

        push dx

        xor bx,bx

        mov cx,04h        

max4bcd:call readchar_numorenter

        cmp al,0dh

        jz readabsvalout

        mov altemp,al

        mov ax,bx

        mov bx,0ah

        mul bx

        mov bx,ax

        mov al,altemp

        xor ah,ah

        add bx,ax

        loop max4bcd

readabsvalout: 

        pop dx

        pop cx

        pop ax

        ret

     readabsval endp 

    

    ;--------------------------------------- 

    ;call readchar_numorenter

    readchar_numorenter proc near

        ;in: none

        ;out: al=the numval or enter 

        push dx

  readchar_numorenterredo:mov ah,08h

        int 21h

        cmp al,0dh

        jz readchar_numorenterout

        cmp al,30h

        jl readchar_numorenterredo

        cmp al,39h

        jg readchar_numorenterredo

        

        mov ah,02h

        mov dl,al

        int 21h

        sub ax,0230h

  

        

        readchar_numorenterout:

        pop dx 

        ret

     readchar_numorenter endp                

    

    ;---------------------------------------  

    ;call readsign

    readsign proc near

        ;in: none

        ;out: dl= zero - or nzero +  

        push ax

   rereadsign:

        mov ah,08h

        int 21h

        cmp al,2bh

        jz oppsign

        cmp al,2dh

        jz negsign

        jmp  rereadsign

        negsign:

        mov dl,2dh

        mov ah,02h

        int 21h

        xor dl,dl

        pop ax

        ret 

        oppsign:

        mov dl,2bh

        mov ah,02h

        int 21h

        mov dl,01h

        pop ax

        ret

     readsign endp

        

     ;--------------------------------------- 

     ;call outresult;  

     outresult proc near

        mov bx,ax 

        js outnegtive

        mov dl,2bh

        jmp outresultval

        outnegtive:

        mov dl,2dh

        neg bx

        outresultval:

        ;outsign

        mov ah,02h

        int 21h

        ;out absval

        lea di,sum

        add di,04h

        mov ax,bx

        mov bx,0ah

        

        mov cx,05h

  sent: xor dx,dx

        div bx

        add dl,30h

        mov [di], dl

        dec di

        loop sent

        

        lea si,sum

        mov bl,00h;as a flat of head zero

        mov ah,02h

        mov cx,05h

        

out_Dnum: mov dl,[si]

        cmp dl,30h

        jnz outnum

        test bl,01h

        jnz outnum

        cmp cx,01h

        jz outnum

        jmp outvalcontinue

 outnum:mov bl,01h

        int 21h

 outvalcontinue: inc si

         loop out_Dnum 

         ret

     outresult endp                           

     

     ;--------------------------------------- 

     ;call newlinebegin

     newlinebegin proc near

        push ax

        push dx

        

        mov ah,02h

        mov dl,0dh

        int 21h

        mov dl,0ah

        int 21h

        

        pop dx

        pop ax

        ret

     newlinebegin endp            

code ends

end start ; set entry point and stop the assembler.

=======================================

测试运行截图:



;编写一个程序,能从键盘读入两个5位十进制数(1位符号位和4位数值位),并将这两个;

十进制数分别转换为二进制数,然后求其和,再将和以十进制形式进行显示。
;
;要求:提示从键盘输入第一个数,按回车完成输入;然后提示从键盘输入第二个数,按回

;车完成输入。然后显示输入的两个数的和。能够从键盘输入-9999~+9999之间的数值。
;相互转化那个功能要用两个子程序(即十进制变二进制、二进制变十进制)完成,
;本人就是在这个子程序这里,不太会多位数字的转换,.....急求!!!!!!!!

;用MASM5.0编译通过

data segment
S0 DB 0DH,0AH,'<CTRL> + <C> TO EXIT. ',0DH,0AH,24H
s1 db 0dh,0ah,'Enter first NUM: $'
s2 db 0dh,0ah,'Enter second NUM: $'
S3 DB 0DH,0AH,24H
ADD_S DB ' (+) $'
D1 DW 0 ;输入的第一个数
D2 DW 0 ;输入的第二个数
D3 DW 0 ;两数相加的结果
T DW 0 ;输入数字的临时存放位置
FU DB 0 ;正负号,0为正 1为负
COUNT DB 0 ;数位计数器 (限于4位)

data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------------------

MOV AH,9
MOV DX,OFFSET S0
INT 21H

AGAIN:
mov ah,09
mov dx ,offset s1
int 21h

call input
MOV AX,T
MOV D1,AX

mov ah,09
mov dx ,offset s2
int 21h

call input
MOV AX,T
MOV D2,AX

ADD AX,D1
MOV D3,AX

mov ah,09
mov dx ,offset s3
int 21h

MOV AX,D1
ADD AX,D2

MOV AX,D1
CALL DISP

MOV AH,9
MOV DX,OFFSET ADD_S
INT 21H

MOV AX,D2
CALL DISP
MOV AH,2
MOV DL,'='
INT 21H
MOV AX,D3
CALL DISP
;-------------------------

JMP AGAIN
ret

main endp

;=============
input proc near
mov ax,0 ;初始化
mov T,AX
MOV FU,AL
MOV COUNT,AL
;
NEXT:
MOV AH,08 ;不回显输入(可CTRL+C中断)
INT 21H
CMP AL,0DH
JNZ N1
JMP SAVE ;回车输入完毕

N1:

MOV AH, COUNT ;是否输入了4位数
CMP AH,4
JE NEXT ;已达4位,不允许再输入
CMP AL,'-'
JNE PD0_9
MOV AH,FU ;检测到输入'-',检查先前是否已输入过
CMP AH,0
JNE NEXT ;FU=0 未输入'-' ,FU=1 已输入'-'

MOV BX,T ;如果前面已输入数字位,则不允许在数字中间再输入"-"
CMP BX,0
JA next

FU_INC:
INC FU ;置FU=1 表示已输入'-'
MOV AH,2
MOV DL,AL
INT 21H
JMP NEXT

PD0_9:
CMP AL,'0' ;只允许输入0-9
JB NEXT
CMP AL,'9'
JA NEXT

PUSH AX
MOV DL,AL ;显示输入的0-9
MOV AH,2
INT 21H
POP AX

SUB AL,30H ;以下: T <= [将已输入在T中的数 * 10d + 现在输入的数]
PUSH AX
MOV AX,T
MOV BX,10
MUL BX
POP BX
MOV BH,0
ADD AX,BX
MOV T,AX
INC COUNT ;输入位数计数器+1
JMP NEXT

SAVE: ;保存输入的数据
MOV BX,T
MOV AL,FU
CMP AL,0
JE SAVE1
NEG BX ;若输入的是负数,则求补
SAVE1:
MOV T,BX
RET
input ENDP

;================
DISP PROC NEAR ;以10进制显示数字

TEST AX,8000H ;高位为1是负数,否则为正
JZ ZZ
NEG AX ;数字为负,求补
PUSH AX
MOV AH,2
MOV DL,'-' ;显示"-"
INT 21H
POP AX
ZZ: ;数字为正
MOV DX,0
MOV BX,10000 ;转换成10进制的万位数值
DIV BX
PUSH DX
MOV AH,2
MOV DL,AL
ADD DL,30H
INT 21H
POP AX

MOV DX,0
MOV BX,1000 ;转换成10进制的千位数值
DIV BX
PUSH DX
MOV AH,2
MOV DL,AL
ADD DL,30H
INT 21H
POP AX
MOV BL,100 ;转换成10进制的百位数值
DIV BL
PUSH AX
MOV DL,AL
ADD DL,30H
MOV AH,2
INT 21H
POP AX
MOV AL,AH
MOV AH,0
MOV DL,10 ;转换成10进制的十位和个位数值
DIV DL
ADD AX,3030H
PUSH AX
MOV DL,AL
MOV AH,2
INT 21H
POP DX
MOV DL,DH
MOV AH,2
INT 21H
RET

DISP ENDP
;================

code ends
end start

呵呵,看到这里想起了以前学校搞个这些东东,也搞出来了。说句实话搞这些真的一点都没用!
除非毕业后你是搞X86asm,搞单片机的最好学习单片机方面的知识,比这实用多。


...然后按相反顺序打印。c语言 最好讲讲讲的越详细越好
include<stdio.h>int main(){int a[8];int i;for(i=0;i<8;i++)scanf("%d",&a[i]);for(i=7;i>=0;i--)printf("%d ",a[i]);return 0;}一看就懂的

用汇编语言编写一个程序求出6个有符号整数中的最大值并输出,这6个数从...
===; 字数组求最大值 MAXINT PROC NEAR ; 数组长度置入cx,字数组首地址置入 si PUSH AX PUSH CX PUSH SI PUSHF MOV WORD PTR MAX_INT,-32768 CLD @MAXINT1: MOV AX,[SI] CMP...

51单片机编程,最好用c语言。急求~急急急~ 把长度为50的无符号整数数组放...
参考:http:\/\/hi.baidu.com\/do_sermon\/item\/65af71290819959eb6326365 下列这段程序:\/\/--- void display(void) \/\/显示函数 { char code table[] = { \/\/共阴数码管的段码 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x...

学习编程难吗?
第一门编程语言C语言,C语言目前是底层应用开发最为广阔的一门编程语言,是物联网必备的开发语言。第二门编程编程java,java目前的优势比较多,在开发安卓方面目前非常成熟,市场上几乎所有安卓APP都是java开发,再者java在网站开发也有自己的优势,大型类网站选择java开发是最好不过了,支持多线程高并发,...

编程需要学什么?
5、Java:是较为传统的面向对象语言,特点是支持跨平台的开发。Jav语言是基于面向对象的思想来设计的 , 但是删去了C+中几乎不用或很难用好的一些面向对象的特征。Jav语言随着互联网的发展逐渐流行,而且大量的开源框架和类库支持Java在各个场景的开发实践。6、Swift:Swift是Apple发布的一门编程语言,用来...

2020年最值得学习的5大编程语言
今天给大家盘点2020年最值得学习的五大编程语言,掌握了这些语言你不仅能顺利找到一份好的工作,而且还没有相关学历要求。在盘点中,我们主要考虑了以下三方面,对语言进行排名,分别是:一、要学多久 即学习、掌握这门语言所要的时间,从零基础的小白入门,最终能做出实际的项目。二、市场需求 市场对这...

...我讲清楚点C语言各种语言是什么,用什么编啊,最好给我点例
二.学好C语言的四种程序结构 (1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。例如;a = 3,b = 5,现交换a,b的值,这个问题就好象交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为...

学软件开发需要学什么语言最好?
4.C++:C++是一种面向对象的编程语言,广泛应用于系统开发、游戏开发、嵌入式系统等领域。5.C#:C#是一种由微软开发的面向对象编程语言,主要用于Windows应用程序开发和游戏开发。6.Swift:Swift是苹果公司开发的编程语言,用于iOS和Mac应用程序的开发。选择哪门编程语言学习最好,取决于你的兴趣、学习目标...

用c++语言编出下列问题的代码,急需,在线等,最好用dev c++。
include <iostream>using namespace std;int main() {for (int i1 = 0; i1 < 10; ++i1) for (int i2 = i1 ? i1 + 1 : 0; i2 < 10; ++i2)for (int i3 = i2 ? i2 + 1 : 0; i3 < 10; ++i3)for (int i4 = i3 ? i3 + 1 : 0; i4 < 10; ++i4)for (...

学编程学什么语言好
编程先学逻辑,就是先执行什么后执行什么,能得出什么样的结果。接下来是学语法,比如for,if,while这些,都是根据不同语种学习不同的内容;到了高阶就开始学习算法,因为算法可以协助做自己的框架,引擎等。用简单的话来说,编程就是学习。一门计算机语言好比大家学习英文是为了跟外国人打交道,学习...

南川市18591166946: 完成一个完整的简单汇编语言程序 -
再虽盐酸: ;求Z=|X-Y| Dseg segment;数据段 x db 40h y db 98h z db ?Dseg ends sseg segment para stack;堆栈段 db 80h dup(0) sseg ends ;代码段 cseg segment assume cs:cseg,ds:dseg,ss:sseg;伪指令声明每个段与一个段寄存器建立一种对应关系...

南川市18591166946: 汇编语言写一个开关程序 -
再虽盐酸: ORG 0000H LJMP MAIN ORG 0030H MAIN: JB P0.1,MAIN1 LCALL DELAY JB P0.1,MAIN1 JNB P0.1,$ CPL P1.1 SJMP MAIN MAIN1: JB P0.2,MAIN LCALL DELAY JB P0.2,MAIN JNB P0.2,$ CPL P1.2 SJMP MAIN DELAY: MOV R2,#20 DLY: MOV R3,#250 DJNZ R3,$ DJNZ R2,DLY RET END

南川市18591166946: 汇编语言是什么类型的语言好编什么程序 -
再虽盐酸: 汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言.汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇...

南川市18591166946: 谈谈对汇编语言的认识 -
再虽盐酸: 通过两节课的学习,我了解到汇编语言是直接在硬件之上工作的编程语言.首先要了解的是机器语言,机器语言是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令.早期的程序员们很快就发现了使用机器语言带来的麻烦,...

南川市18591166946: 一个汇编语言程序,急求急求!! -
再虽盐酸: 下列程序,经过实验验证,可以满足题目要求.;------------------------------ DATA SEGMENT X DB 80 DUP (0) ;预留80个字符的空间.DATA ENDS;------------------------------ CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA ...

南川市18591166946: 汇编语言可以写哪些程序? -
再虽盐酸: 一切程序,只要你想到的,汇编都可以写,不过就是代码量很大. 所以除非系统核心和引导程序,还有极端追求性能的,一般都不用汇编写.

南川市18591166946: 关于对汇编语言的认识 -
再虽盐酸: 没有捷径,多看多写,我曾自学完汇编语言,使用 王爽的那本书,然后是 钱晓婕的书,要想学好就多看书,多联系.知道看花容易绣花难吗??只看不动手永远学不好 汇编,确实很重要,如果懂的汇编,那些C语言的秘密也会暴光的.介绍本...

南川市18591166946: 汇编语言程序的开发有哪4个步骤 -
再虽盐酸: 分析问题、画流程图、转化为程序、上机编辑调试运行

南川市18591166946: 用汇编语言写出 3*5 - 4 -
再虽盐酸: 跟你说, 在汇编语言中计算这个要写很长的代码,计算这么无聊的数字,还不如去学易语言.A bd 3 B db 5 C db 4 //常量声明 MOV AX,A MOV AL,AX MOV BX,B MOV BL,BX MUL BL //吧BL与AL相乘,结果默认放在AX中 MOV CX,C SUM AX,CX//上述代码就把结果存到 AX寄存器中了,要把AX的类容输到屏幕上要很长代码!!不再写了 我还是先学VC++吧!!!!!

南川市18591166946: 单片机汇编指令是如何实现程序的整个过程的? -
再虽盐酸: ORG 0000H AJMP MAIN ORG 0050H MAIN: MOV DPTR,#NUM MOV 41H,#0 MOV 42H,#1 MOV 43H,#2 MOV 44H,#3 MOV R7,#100 LOOP0: MOV R0,#41H MOV P2,#0F7H MOV R4,#4 LOOP1: MOV A,@R0 MOVC A,@A+DPTR MOV P0,A ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网