蘋果使用教程 寫出寄存器AX,BX,CX、DX、SI的隱含用法?
寫出寄存器AX,BX,CX、DX、SI的隱含用法?除了通用寄存器功能外,ax還用作累加器。在與I/O通信時,必須將axbx用作訪問內(nèi)存的基址。默認(rèn)段為DS,CX段用作Rep、loop等的計數(shù)器。。DX
寫出寄存器AX,BX,CX、DX、SI的隱含用法?
除了通用寄存器功能外,ax還用作累加器。在與I/O通信時,必須將axbx用作訪問內(nèi)存的基址。默認(rèn)段為DS,CX段用作Rep、loop等的計數(shù)器。。DX數(shù)據(jù)寄存器:I/O端口的地址存儲在寄存器間接尋址的I/O指令中。在長乘法期間,DX存儲運(yùn)算結(jié)果的高16位,Si和di作為索引尋址模式的源和目標(biāo)的偏移地址。我不知道這些是否是隱式用法
執(zhí)行下面那些指令后ax、bx、cx是多少,特別是cx是怎么運(yùn)算出來的?
作為碼農(nóng),少說話,多編碼。
Ax>=BX?Ax:Ax=BX?Ax>=CX?Ax:Ax=CX
我相信我的大多數(shù)朋友都會考慮使用if/else來解決這個問題。作為一個老程序員,小編更喜歡使用三元運(yùn)算符。
無論哪種方式,處理邏輯的原理都是相同的。比較ax和BX的尺寸。如果ax不小于BX,則ax保持不變,否則BX被分配給ax。然后比較ax和CX,ax不小于CX,ax保持不變,否則CX分配給ax。執(zhí)行之后,ax是最大值。
比較ax,bx,cx三個有符號數(shù)大小并將最大數(shù)放到ax中?
AX BX CX DX是CPU通用寄存器中的數(shù)據(jù)寄存器。數(shù)據(jù)寄存器通常用于存儲數(shù)據(jù)或操作結(jié)果。每個數(shù)據(jù)寄存器是16位(即16個二進(jìn)制位),但是高8位和低8位可以用作兩個獨立的8位寄存器。高8位記錄為ah、BH、CH、DH,低8位記錄為Al、BL、Cl、DL,靈活的使用方法給編程帶來極大的方便,可處理16位和8位數(shù)據(jù)。數(shù)據(jù)寄存器不僅用作通用寄存器,而且有自己的習(xí)慣用法ax,稱為累加器。它通常用于存儲算術(shù)和邏輯運(yùn)算中的操作數(shù)。另外,所有的I/O指令都是用累加器與外設(shè)接口傳遞信息BX,稱為基址寄存器,通常用來存儲內(nèi)部訪問的基址。CX稱為計數(shù)寄存器,在循環(huán)和字符串操作指令中用作計數(shù)器。DX稱為數(shù)據(jù)寄存器,I/O端口的地址存儲在寄存器間接尋址的I/O指令中。另外,在進(jìn)行雙字長的乘除運(yùn)算時,用DX存儲I/O口的地址,這是學(xué)習(xí)匯編語言的基礎(chǔ)。如果你是裝配新手,建議你買一本裝配書好好看看。它不是很抽象。祝你學(xué)好組裝!