汇编问题,MOV BX, [1234H] 是将1234H这个地址赋给BX,还是将存放1234H值得内存地址赋给BX

作者&投稿:职芬 (若有异议请与网页底部的电邮联系)
MOV BX, [1234H] ,执行时,(DS)=2000H,内存单元21234H的值为5213H。问该指令执行后,BX的值是什么?~

这个很明显是直接寻址方式,BX是通用寄存器,在计算机储存地址时,作为基址寄存器,[1234H]位移量的值表示的是操作数单元的地址(偏移地址),DS=2000H是段地址,而实际是需要的是物理地址,而物理地址=16Dx段地址+偏移地址 。
这里说一下:段地址是指每一段的起始地址,由于它必须是小段的首地址,所以其低四位一定是0,这样就可以规定段地址只取起始地址的高16位值,偏移地址是指在段内相对与起始地址的偏移量,计算物理地址 就是把段地址左移4位加偏移地址。即(20000+1234)H=21234H。
“高高低低”是指5213H高八位和低八位。如AX有高八位字节AH 和低八位字节AL。

[]表示其中的内容为内存单元的地址。

MOV BX, [1234H] 不是将1234H这个地址赋给BX。
而是将数据段中有效地址为1234H的存储器单元的内容(操作数)送给寄存器BX的低8位字节BL;将将数据段中有效地址为1235H的存储器单元的内容(操作数)送给寄存器BX的高8位字节BH。
是数据字传送。

可以表示成: (1234H)---->(BX)

呵呵 满意 就选满意回答喽

将地址为1234H的内存单元中的内容赋给BX


兰山区13932613254: 汇编问题,MOV BX, [1234H] 是将1234H这个地址赋给BX,还是将存放1234H值得内存地址赋给BX -
敞友桂枝: MOV BX, [1234H] 不是将1234H这个地址赋给BX. 而是将数据段中有效地址为1234H的存储器单元的内容(操作数)送给寄存器BX的低8位字节BL;将将数据段中有效地址为1235H的存储器单元的内容(操作数)送给寄存器BX的高8位字节BH. 是数据字传送. 可以表示成: (1234H)---->(BX) 呵呵 满意 就选满意回答喽

兰山区13932613254: 汇编中,什么是偶数地址,什么是地址, -
敞友桂枝: mov bx,123mov ax,[bx];地址123就是地址inc bxmov ax,[bx];该地址就是偶数地址不需要想复杂了,偶数地址是因为以后要用到一个字节占两个存储单元的,如果不是偶数,就把这个数的上半部分和另一个数的下半部分合成一个数,就错了.例如a dw 34h,12h,78h,56hmov ax,amov ax,a+2 ;这里ax就是1234,用的是偶数地址(本意是取1234嘛)mov ax,a+1 ;这里ax就是7812,就错了,用的是奇数地址(当然指令本身没错)

兰山区13932613254: 汇编语言中,给定一个三位数字字符串'123',将其转换为对应的三位数,并存放到BX寄存器中. -
敞友桂枝: output BYTE "123",0 Call 将数字的字符串表示形式转换为它的等效整数函数(特定平台或操作系统的转换函数) mov bx,x exit

兰山区13932613254: 有关汇编MOV问题 -
敞友桂枝: 没有写清楚是8位数,还是16位数的传送.如下是正确的写法: MOV [BX], BYTE PTR 5 ;[BX]MOV [BX], WORD PTR 5 ;[BX]

兰山区13932613254: 求助!汇编语言MOV问题! -
敞友桂枝: 1、我觉得不可以. 2、LEA是传操作数地址,mov是移动地址中的数据(当然,这个数据还可能为一个地址) 3、中括号表示间接寻址,对应寄存器中数据为二级地址,然后从二级地址中取出存储的数据. 4、期待其它答案.其它参考信息: ...

兰山区13932613254: 汇编MOV指令问题?比如ax=10 bx=25 执行以下指令mov ax,bx 那请问下现在ax的值是多少?bx的值还是不是25?ax的值是不是被bx替换掉了? -
敞友桂枝:[答案] ax=25 bx=25 是被bx替换

兰山区13932613254: 关于汇编语言MOV指令的问题? -
敞友桂枝: MOV AX,DS是把数据段的段地址取到AX中,后面应该有把AX再送其他段寄存器,这样,指向同一段地址.MOV AH,DS,这是错误指令,AH是八位的,不能送十六位的数.MOV DS,AX 把AX里面的数据赋到DS,前面应该有取段地址给AX,经过AX初始化DS.

兰山区13932613254: 汇编语言的这条指令:MOV [BX],[SI] 错在哪儿? -
敞友桂枝: MOV SI,DI 与 MOV [BX],[SI] 是不同的,前者直接应用存储器,后者是间接的,具体说前者是只用存储器,后者主要目的在内存,这就不同了,后者相当于同时为内存变量,两个内存变量数据是不会传递的,所以要用一个存储器作为中间人!这是CPU指令要求的,或者可能作出一个能运算MOV [BX],[SI]的CPU指令太费时费地,不如用一个中间量传递来的经济吧!

兰山区13932613254: 汇编中[ ]这个符号的问题 -
敞友桂枝: mov ax,[bx] [ ]表示是间接寻址,bx和[bx]的区别是,前者操作数就是bx中存放的数,后者操作数是以bx中存放的数为地址的单元中的数.比如bx中存放的数是40F6H,40F6H、40F7H两个单元中存放的数是22H、23H,则 mov ax,[bx];2223H传送到ax中 mov ax,bx;40F6H传送到ax中

兰山区13932613254: 汇编语言编制程序,实现从1加到100 -
敞友桂枝: 最简短的完整程序: CODE SEGMENTASSUME CS:CODE START: ;---------------------------------MOV AX, 0MOV CX, 100 S: ADD AX, CXLOOP S ;-----基本的,就上面四行----MOV AH, 4CHINT 21H CODE ENDSEND START

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网