㈠ AX寄存器在哪裡
寄存器是cpu上的一塊區域,不是軟體,不能下載。它是為了使一些常用的運算使用的數據能夠快些被讀取,而設置的數據暫存區域。很少。
㈡ 匯編 語言實現在命令行參數中輸入文件名打開文件感謝各位大神
以下是匯編編譯的com文件執行外部程序的示例。供參考:
;***********************************************************
;*本程序由程序ASMPAS.EXE自動生成*
;*版權所有:lifangqing1997年2月7日*
;***********************************************************
code segment
org100h
assumecs:code
start: jmpBEGIN
nop
stackarea dw100p(?)
stacktop dw0
oldss dw?
oldsp dw?
loadp dw0
COM_OFSdw0080h
COM_SEGdw?
dw005ch
dw?
dw006ch
dw0
dw20p(?)
SHELL DB'C:COMMAND.COM',0
shell_PARAdb12,'/cshell.exe',13
UP_PARADB9,'/CUP.BAT',13
Q_U_PARADB7,'/CQUIT',13
L62_PARADB9,'/Cqbasic',13
L61_PARADB13,'/Cbasica.exe',13
L42_PARADB9,'/Cqbasic',13
L41_PARADB13,'/Cbasica.exe',13
L22_PARADB9,'/Cqbasic',13
L21_PARADB13,'/Cbasica.exe',13
CHAR DB?
ERR1MSGDB'CHANGEMEMERROR',10,13,'$'
ERR2MSGDB'EXECERROR',10,13,'$'
MENUADDDB'C:PAS_IDEmenu.EXE',0
;*****************CTRL_BREAK中斷處理代碼************
CTRL_BREAK:
IRET
;*****************正常及出錯退出代碼****************
;******************************************************************
ERROR:
MOVSS,OLDSS
MOVSP,OLDSP
int20h
;***************************************************************
;修改STACK和重新設置CTRL-BREAK向量
;****************************************************************
BEGIN:
PUSHCS
POPDS
MOVOLDSS,SS
MOVOLDSP,SP
MOVAX,CS
MOVSS,AX
MOVSP,OFFSETSTACKTOP
CALLCHANGEMEM
MOVAH,33H
MOVAL,1
MOVDL,0
INT21H
PUSHDS
MOVAX,0
MOVDS,AX
MOVSI,008CH
CLI
MOVWORDPTR[SI],OFFSETCTRL_BREAK
;原為將FF53放到DS:[SI]中
PUSHCS
POPAX
MOVWORDPTR[SI+2],AX
;原為將F000放到DS:[SI+2]中
STI
POPDS
;****************************************************************
;使數據段指向代碼段
;清屏
;顯示菜單
;取返回碼,將其放入變數CHAR中
;****************************************************************
INIT:
PUSHCS
POPDS
PUSHCS
POPES
MOVAH,15
INT10H
MOVAH,0
INT10H
LEADX,SHELL
MOVWORDPTR[COM_OFS],OFFSETUP_PARA
PUSHCS
POPAX
MOVWORDPTR[COM_SEG],AX
CALLEXEC
menu:
LEADX,menuadd
MOVWORDPTR[COM_OFS],0
MOVWORDPTR[COM_SEG],0
CALLEXEC
movah,4dh
int21h
movbyteptrchar,al
;*************WriteCMOS**************
CMPBYTEPTRCHAR,62
JNENEXT62
LEADX,SHELL
LEAAX,L62_PARA
CALLRUN
JMPMENU
NEXT62:
;*************ReadCMOS**************
CMPBYTEPTRCHAR,61
JNENEXT61
LEADX,SHELL
LEAAX,L61_PARA
CALLRUN
JMPMENU
NEXT61:
;*************WriteDosBootSector**************
CMPBYTEPTRCHAR,42
JNENEXT42
LEADX,SHELL
LEAAX,L42_PARA
CALLRUN
JMPMENU
NEXT42:
;*************ReadDosBootSector**************
CMPBYTEPTRCHAR,41
JNENEXT41
LEADX,SHELL
LEAAX,L41_PARA
CALLRUN
JMPMENU
NEXT41:
;*************WriteMainBootRecord**************
CMPBYTEPTRCHAR,22
JNENEXT22
LEADX,SHELL
LEAAX,L22_PARA
CALLRUN
JMPMENU
NEXT22:
;*************ReadMainBootRecord**************
CMPBYTEPTRCHAR,21
JNENEXT21
LEADX,SHELL
LEAAX,L21_PARA
CALLRUN
JMPMENU
NEXT21:
CMPBYTEPTRCHAR,81
JNENEXT81
LEADX,SHELL
LEAAX,Q_U_PARA
CALLRUN
JMPERROR
NEXT81:
JMPMENU
;**************************************************************
;執行外部程序
;入口參數:
;DX-----路徑文件名ASCZ串偏移
;AX-----命令行參數PASCAL串偏移
;**************************************************************
RUNPROCNEAR
LEADX,SHELL
MOVWORDPTR[COM_OFS],AX
PUSHCS
POPAX
MOVWORDPTR[COM_SEG],AX
CALLEXEC
RET
RUNENDP
;***********載入UCDOS及列印部分****************
UPPROCNEAR
LEADX,SHELL
MOVWORDPTR[COM_OFS],OFFSETUP_PARA
PUSHCS
POPAX
MOVWORDPTR[COM_SEG],AX
CALLEXEC
RET
UPENDP
;***********退出UCDOS****************
QUITPROCNEAR
LEADX,SHELL
MOVWORDPTR[COM_OFS],OFFSETQ_U_PARA
PUSHCS
POPAX
MOVWORDPTR[COM_SEG],AX
CALLEXEC
RET
QUITENDP
;*************************************************************
;執行子進程(路徑文件名在DX中:入口參數)
;*************************************************************
EXEC PROCNEAR
PUSHCS
POPES
MOVBX,OFFSETLOADP
MOVAX,CS
MOV[BX+4],AX
MOV[BX+8],AX
MOV[BX+12],AX
MOVAX,4B00H
INT21H
JNCNO1
MOVAH,9
LEADX,ERR2MSG
INT21H
POPAX
POPAX
JMPERROR
NO1: RET
EXEC ENDP
;*************************************************************
;改變內存塊大小
;*************************************************************
CHANGEMEM PROCNEAR
MOVAX,OFFSETTAIL
SHRAX,1
SHRAX,1
SHRAX,1
SHRAX,1
INCAX
PUSHCS
POPES
MOVBX,AX
MOVAH,4AH
INT21H
JNCNO2
MOVAH,9
LEADX,ERR1MSG
INT21H
POPAX
POPAX
JMPERROR
NO2:
RET
CHANGEMEM ENDP
TAIL:
CODE ENDS
ENDSTART
㈢ 用命令行注冊ax
你是要注冊 DirectShow 的Filter解碼器嗎當然可以使用 regsrv32 來注冊。。。
㈣ 點擊程序 運行,輸入regsvr32 AX文件名 能幹什麼
regsvr32注冊動態鏈接庫的,比如dll文件。
㈤ 匯編語言兩條指令 push ax push ds 執行後結果是什麼
這三條是是壓棧指令,把返回操作系統的入口壓入堆棧,使用這方法,你的程序結束的地方一定有一條返回指令,而mov
ah,4ch
int
20h
這種方法是通過dos調用返回操作系統,他們的目的相同,只是用的方法不同,所以只要選一個就可以,現在用的比較多是後面一種
㈥ 匯編:用R命令檢查各寄存器內容,特別注意AX,BX,CX,DX,IP及標志位中ZF,CF和AF的內容。
ZF是零標志
CF是進位標志
AF是輔助進位標志
用R命令後會顯示三行內容,第一行是AX,BX,CX,DX,以及SP,BP,SI,DI;第二行是段寄存器DS,ES,SS,CS以及指令指針IP,還有後面8個符號吧,兩個字母一組,那就是標志位。一般是這樣的:
第一個:NV(表示OF=0)、OV(表示OF=1)
第二個:UP(表示DF=0)、DN(表示DF=1)
第三個:DI(表示IF=0)、EI(表示IF=1)
第四個:PL(表示SF=0)、NG(表示SF=1)
第五個:NZ(表示ZF=0)、ZR(表示ZF=1)
第六個:NA(表示AF=0)、AC(表示AF=1)
第七個:PO(表示PF=0)、PE(表示PF=1)
第八個:NC(表示CF=0)、CY(表示CF=1)
㈦ excel 作圖(多條折線) y=ax
按照你的描述,a有101個數,20.0、20.1、20.2......29.9、30.0
X有100個數,1、2、3、4.....99、100
1、如果你要他們同時顯示出來,那就把a的數作為列,X的數作為行,它們兩兩相乘(ax),得出的值就是Y(Y=ax)。如:
1 2 3...............100
20.0 20.0 40.0 60.0.......... 2000
20.1 20.1 40.2 60.3........... 2010
20.2 20.2 40.4 60.6........... 2020
. . .
. . .
30.0 30.0 60.0 90.0 3000
得出上面的表格後,以X的值為X軸,Y的值為Y軸,a的值為系列,就可以畫出多重摺線。這個表格沒什麼意義,太大太亂了。
2、可以把a做為變數(保留上面表格的前兩行,以20.0那個單元格設數據有效性),用數據有效性做成序列的形式篩選,選定了a的值,就會出現對應的直線。
3、運用數據透析表制圖。