汇编语言中,解释每一句
STACK SEGMENT
STA DW 100 DUP(?)
TOP EQU LENGTH STA
STACK ENDS ;这里以上建立的段又用不到
CODE SGMENT
ASSUME CS:CODE,SS:STACK
START: MOV AX,STACK
MOV SS,AX
MOV AX ,TOP ;这里建堆栈指针也用不到吧
MOV SP,AX
MOV AH,1
INT 21H
MOV BL,AL
MOV AH,1
INT 21H
CMP BL,AL
JG LA ;这里什么意思,哪来的LA
MOV AL ,BL
LA: MOV DL,AL
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
补充:改为CMP AL BL
答案:LEA SI,DATA1 //将data1作为立即数加载到SI里面
LEA BX,DATA2
MOV CX,64H //CX=0x64
NEXT: MOV AL,[SI] //将SI里面的内容传入AL里
MOV [BX],AL //将AL的值传入DATA2为地址的内存中
INC SI //data1 加1
INC BX //data2 加1
LOOP NEXT //循环,跳到next
HLT
加个判断条件就行了,循环15就OK了!满意否?
其他:输入两个符号,输出其中(ASCII码)最大的。
堆栈段总是要用到的。虽然不是很明显。
在INT 21H里面,就会用到堆栈。
如果你不设定堆栈段,默认就是用CS段当做堆栈段。
LA,是自己定义的标号,一般就是转移指令的目标地址。 MOV AL,0
;AL清零,可略
LEA SI,DATA1
;初始化SI
LEA BX,DATA2
;初始化SI
MOV CX,64H
;设置传送数据长度
NEXT: MOV AL,[SI]
;中转
MOV [BX],AL
;传送到目标区
INC SI
INC BX
LOOP NEXT
HLT
-----------------------------
MOV DS,SEG DATA1
LEA SI,DATA1
MOV ES,SEG DATA2
LEA DI,DATA2
MOV CX,10H
REP MOVSB 啊啊啊 LA就是一个自定义的一个段的名字 ,就是说当AL 大于BL时候跳转到LA段。
希望你能理解。
上一个:汇编语言问题
下一个:汇编语言