#2
张珂珂2021-11-03 00:47
|
程序:
程序代码:
DATAS SEGMENT
;此处输入数据段代码
X DW 16;定义X
Y DW ?
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AX,X
CMP AX,0; 判断〉0
JGE LP0;>=0
LP0:CMP AX,0 ;判断<=0 如果小于等于0且大于等于0,即=0
JLE LP4
CMP AX,10;判断AX 10
JG LP1;〉10
JMP LP3
LP3:
ADD AX,1 ;X<=10 Y=X+1
JMP out1
LP4:
MOV AX,0
JMP out1
LP1:CMP AX,16;判断
JLE LP2; <=16
LP2:SUB AX,1;Y=X-1
JMP out1
out1:MOV Y,AX
MOV AH,4CH
INT 21H
CODES ENDS
END START
;此处输入数据段代码
X DW 16;定义X
Y DW ?
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AX,X
CMP AX,0; 判断〉0
JGE LP0;>=0
LP0:CMP AX,0 ;判断<=0 如果小于等于0且大于等于0,即=0
JLE LP4
CMP AX,10;判断AX 10
JG LP1;〉10
JMP LP3
LP3:
ADD AX,1 ;X<=10 Y=X+1
JMP out1
LP4:
MOV AX,0
JMP out1
LP1:CMP AX,16;判断
JLE LP2; <=16
LP2:SUB AX,1;Y=X-1
JMP out1
out1:MOV Y,AX
MOV AH,4CH
INT 21H
CODES ENDS
END START
问题:
调试结果1
只有本站会员才能查看附件,请 登录
想问一下AX=0770 0770是AX的地址吗?
MOV DS,AX 的意思是将AX的段基址存入DS寄存器?
MOV AX,[0000]的意思是给AX一个偏移地址[0000]吗?
DS:0000=0010的意思是这条语句具体意思是什么呢?大概知道是赋值,具体的含义不太懂。
调试结果2
只有本站会员才能查看附件,请 登录
这里JGE 000D是什么意思呢? 我了解这一句的意思应该是判断大于,然后跳转,但是为什么是000D呢