㈠ 用汇编语言向指定内存写数据
呵呵呵 俺来帮你解决吧
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 ?
定滚闷义好后直接可对该单元存取