1. 汇编怎么写程序
其实和其它语言差不多,先定义空间
STACK SEGMENT STACK
DB 200 DUP(0)
STACK END
从0开始的,200字大小
再是数据定义
DATA SEGMENT
A DB '0'
OUTPUT DB 0DH,0AH,'PLEASE INPUT NUMBER:'
DATA END
A 和OUTPUT都是定义的量
再是开工
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
START:MOV AX,DATA
MOV DS,AX
.
JMP START(跳回从START继续做(循环))
CALL DUAN(调用下面地个DUAN的功能)
DUAN: PROC
..相关操作
RET
DUAN EDNP
.
CODE ENDS
END START
开工后的一个段START(相当于一个函数)可以用来做循环语句.
慢慢学吧其实入门比别的语言容易。个人感觉.
希望对你有帮助~!
2. 怎么写这个汇编程序
data segment
str db "1234106789",0dh, 0ah, "$"
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
mov cx,10
mov dx, offset str
loop_w:
push dx
mov ah,9
sub dx,1
add dx,cx
int 21h
pop dx
loop loop_w
mov ax,4c00h
int 21h
code ends
end start
3. 汇编语言程序怎么写啊
ASSUME CS:CODE, DS:DATA
DATA SEGMENT
AREAY DB 1,2,4,-8,16,-32,64,127
COUNT EQU $ - AREAY
MAX DB ?
MIN DB ?
DATA ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
LEA SI,AREAY
MOV AL,[SI]
MOV MAX,AL;假设最大值是AREAY数组的首元素
MOV MIN,AL;假设最小值是AREAY数组的首元素
MOV CX,COUNT;循环次数
LP:
INC SI;指向下一个内存单元
MOV AL,[SI]
CMP MAX,AL;和最大值比较
JG TOMIN;如果最大值大于AL,跳转到TOMIN
MOV MAX,AL;否则最大值就是AL
TOMIN:
CMP MIN,AL;和上面同理
JL DONE
MOV MIN,AL
DONE:
LOOP LP
MOV AX,4C00H
INT 21H
CODE ENDS
END START
PS:若有不明白的地方,可以追问
4. 汇编语言程序怎么写啊
ASSUME CS:CODE, DS:DATADATA SEGMENT AREAY DB 1,2,4,-8,16,-32,64,127 COUNT EQU $ - AREAY MAX DB ? MIN DB ?DATA ENDSCODE SEGMENT START: MOV AX,DATA MOV DS,AX LEA SI,AREAY MOV AL,[SI] MOV MAX,AL;假设最大值是AREAY数组的首元素 MOV MIN,AL;假设最小值是AREAY数组的首元素 MOV CX,COUNT;循环次数 LP: INC SI;指向下一个内存单元 MOV AL,[SI] CMP MAX,AL;和最大值比较 JG TOMIN;如果最大值大于AL,跳转到TOMIN MOV MAX,AL;否则最大值就是AL TOMIN: CMP MIN,AL;和上面同理 JL DONE MOV MIN,AL DONE: LOOP LP MOV AX,4C00H INT 21HCODE ENDSEND STARTPS:若有不明白的地方,可以追问。
5. 如何编写完整的汇编程序
data segment (segment和ends是一对,一定是成对出现的)
…… (这中间就是申明你需要的数据段,例如:mess db 1,2,3;其中mess只是一个名字,可以根据自己需要来,db表示每个字符占的存储空间,也可以用dw,dd,db是一个字节;后面的数据根据实际情况来)
data ends (这是数据段)
extra segment
…… (申明和数据段一样)
extra ends (这是附加段)
code_seg segment (这是代码段)
assume cs:code_seg,ds:data,es:extra (这个一定不能少,而且顺序不能换,也就是说cs一定对应代码段,后面也是相同的)
start: (start可以没有,但冒号不能少)
mov ax,data (这四句是固定的,只能根据名称不同改变data、extra的名称,其它不能变)
mov ds,ax
mov ax,extra
mov es,ax
…… (这中间就是你说的那些代码)
code_seg ends (这两句也不能少)
end start
6. 汇编程序怎么编写
好像很简单~唉~虽然没分还是给你写了吧 dat_sg segment olds db 'a$' ;(字符串中内容在此处修改) news db 'a$' yes db 'yes$' no db 'no$' dat_sg ends stk_sg segment stk db 100 dup(?) stk_sg ends cod_sg segment assume cs:cod_sg,ds:dat_sg start: mov ax,dat_sg mov ds,ax xor si,si mov cx,1 ;(这个数字是你字符串的长度,根据字符串长度修改)a0003: mov bl,olds[si] cmp bl,news[si] jne a0002 loop a0003 mov dx,offset yes mov ah,09h int 21h jmp a0001a0002: mov dx,offset no mov ah,09h int 21h a0001: mov ah,4ch int 21h cod_sg ends end start。
7. 这个单片机汇编程序应怎么写
第一步,P1。0输入高电平后,-P1。2输出高电平,且保持,
--------------------------------------------------------我感觉这里的p1.2,应该是p1.1
-----------------------------------------------------
jnb p1.0,$
setb p1.1
然后等P1。2入高电平时,P1。3、P1。4输出高电平保持。
jnb p1.2,$
setb p1.3
setb p1.4
延时1S后,P1。5输出高电平保持。再延时0。5S后等待P1。6输入高电平2次。
lcall delay1000ms
setb p1.5
lcall delay500ms
jnb p1.6,$
jb p1.6,$
jnb p1.6,$
P1。6输入高电平两次以后P1。3P1。4P1。5输出低电平,P1。0P1。1还是保持高电平不变。
clr p1.3
clr p1.4
clr p1.5
当P1。7输入高电平时P1口所有输出都为低电平。
jnb p1.7,$
mov p1,#0