㈠ 用匯編語言向指定內存寫數據
呵呵呵 俺來幫你解決吧
1 編寫一個循環程序就可以解決了
2 循環初始化:
設一春伏個數據指針 指向模森敗04000H 循環次數 CX=0FFFH +1 要寫入內存的數據AL=55H
3 將累加器AL的內容用數據傳送指令 傳送給數據指針所指的內存單元
4 循環控制部分
累加器AL內容取反
數據指針加1
循環次數CX減1 不等旦顫於0 則繼續循環即不斷執行3、4的內容
直到循環結束
呵呵 你可以按照上述演算法編寫程序 滿意就給加分嘍
另外 直接給內存單元賦值有有可能造成重要數據的丟失啊 應盡量避免
㈡ 匯編實現輸入4位十六進制數,結果以二進制數保存在Save存儲單元中
;8086匯編語言
;輸入4位十六進制數,結果以二進制數保存在Save存儲單元中.
DATASEGMENT;數據段裂隱禪
INPUTDB5;鍵盤最多輸入4個字元
DB0;記錄實際輸入多少個字元
DB0,0,0,0,0;緩存,用於存放4個字元
SaveDW0;用於保存結果(16位二進制數)
DATAENDS
CODESEGMENT;代碼段
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,INPUT
MOVAH,0AH;鍵盤輸入字元串(4位十六進制數)
INT21H
LEABX,INPUT+2;BX指向緩存(存放4個字元)
MOVSI,BX
MOVCX,4
ASC_BIN_NEXT:
MOVAL,[BX]
CMPAL,'0'
JBASC_BIN_ERROR
CMPAL,'9'
JACHECK_UPPER
SUBAL,30H
JMPGO_ON
CHECK_UPPER:
CMPAL,'A'
JBASC_BIN_ERROR
CMPAL,'F'
JACHECK_LOWER
SUBAL,37H
JMPGO_ON
CHECK_LOWER:
CMPAL,'a'
攜碰JBASC_BIN_ERROR
CMPAL,'f'
JAASC_BIN_ERROR
SUBAL,57H
GO_ON:
MOV[BX],AL
肆塵INCBX
LOOPASC_BIN_NEXT
MOVBX,SI
XORAX,AX
MOVCL,4
MOVDL,[BX]
SHLDL,CL
MOVAH,DL
MOVDL,[BX+1]
ORAH,DL
MOVDL,[BX+2]
SHLDL,CL
MOVAL,DL
MOVDL,[BX+3]
ORAL,DL
ASC_BIN_ERROR:
MOVSave,AX;AX是最後的結果,存入Save
MOVAH,4CH;返回DOS
INT21H
CODEENDS
ENDSTART
㈢ 匯編語言內存中數據存放
dsegsegmentd0db1;1byted1db2d2db0dd0dw1;2byte
dd1dw2
dd2dw0
qd0dd1;4byte
qd1dd2
qd2dd0
dsegends
assumecs:cseg,ds:dseg
csegsegment
start:
movax,dseg
movds,ax
;1byte
moval,d0
addal,d1;d0+d1
movd2,al;savetod2
;2byte
movax,dd0
addax,dd1
movdd2,ax
;4byte
movax,wordptrqd0;低位數據在低地址,高位數據在高地址
addax,wordptrqd1;低位數據相加
movwordptrqd2,ax;保存到qd2的低位
movax,wordptrqd0+2;高位
adcax,wordptrqd1+2;高位相加,再加上低位相加時,有可能的進位
movwordptrqd2+2,ax;保存高位。如果高位相加有進位,這里未處理
movax,4c00h
int21h
csegends
endstart
㈣ 匯編語言怎麼編寫把鍵盤輸入數據存到存儲器或寄存器里
目的數據存儲器單元,如果是在單片機內部,
這樣就可以:MOV
@R0,
A
或送到片外:MOVX
@R0,
A
㈤ 匯編語言中怎麼把數存到一個單元啊,y單元,單元需要定義嗎
需要定義:
如果Y是位元組,那定義為
y db ?
如果y是字大晌彎,那定謹碼義為
y dw ?
定滾悶義好後直接可對該單元存取