汇编语言程序设计提问

指出下列指令错误的原因。
(1)MOV AX,BL (2)MOV CS,BX (3)INC [BP+SI] (4)MOV DS,2000H
(5)ADD AX,DS (6)AND AX,[CX] (7)ADD AX,[DX+SI]
(8)MOV [BX],[SI+250H] (9)SHR AX,2 (10)MOV [BX+SI},05H

1.ax和bl类型(长度)不同
2.cs不能作为目的操作数
3. inc的操作数应是一个寄存器或内存单元,执行结果是将其内容加1
4.不能直接把立即数传送到段寄存器中,可以改为 mov ax,2000H mov dx,ax
5.add的源操作数不能是段寄存器,只能是通用寄存器、立即数或存储器
6.寄存器间接寻址的寄存器只能使用BX、BP(基址) 和SI、 DI(变址),即不能不能把cx的内容作为偏移量来寻址
7.基址只能存放在BX或BP中,[DX+SI]错误地把DX 用于存放基址
8.mov指令不能在两个内存单元之间传送数据
9.在8086/8088系统中,当移位次数大于1时,一定要先将移位次数存放到CL(不能是其他寄存器)中,即应改为: MOV CL,2 SHR AX,CL (但在80286以上的系统中这种限制已取消)
10.目的操作数和源操作数类型不同,即系统不能区分05H 还是0005H追问

分别说明下列每组指令中两条指令的区别
(1)MOV AX,FIRST (2)AND AL,0FH (3)MOV AX,BX
LEA AX,FIRST OR AL,0FH MOV AX,[BX]
(4)SUB AX,BX (5)MOV [BP+SI],AL
CMP AX,BX MOV DS,[BP+SI],AL

追答

1. a. FIRST内容存放在AX中 b. FIRST的地址偏移量存放在AX中
2.a. 将AL的高四位置为0,即只保留低四位 b. 将AL的低四位置为1,高四位不变
3, a.BX 的内容存放在AX中,即AX和BX 的内容相同
b.目的操作数的物理地址是BX加上段地址(默认为DS) ,即把存储器中物理地址为BX+DS的一个字传送到AX
4.a.将AX-BX 的结果保存在AX,BX不变,指令对标志寄存器中的O、S、Z、A、P、C标志位有影响
b.比较AX和BX的内容大小,不改变它们的内容,不保存 AX-BX 的结果,对O、S、Z、A、P、C标志位有影响
5.a.将AL的内容传送给偏移量为BP+SI 的存储单元,段地址默认是DS(串操作指令可能是ES)
b. 指定了目的操作数所在的段(段超越),中间是冒号 mov DS:[BP+SI],AL 即把将AL的内容传送给物理地址为DS+BP+SI 的存储单元

其实最好还是看书吧

温馨提示:内容为网友见解,仅供参考
无其他回答

汇编语言程序设计提问
1.ax和bl类型(长度)不同 2.cs不能作为目的操作数 3. inc的操作数应是一个寄存器或内存单元,执行结果是将其内容加1 4.不能直接把立即数传送到段寄存器中,可以改为 mov ax,2000H mov dx,ax 5.add的源操作数不能是段寄存器,只能是通用寄存器、立即数或存储器 6.寄存器间接寻址的寄存器只...

汇编语言程序设计题目
一、改错(只能对每条错误指令的一个操作数进行修改)。(共10分,每小题1分)1. MOVBX,AL改正: MOV BX,BX 2. MOV AX, A999H 改正:MOV AX,0A999H 3. MOV AL, 1234改正:MOV AX,1234 4. MOVAX, [CX] 改正:MOV AX,[BX]5. MOVDS, 1000H 改正:MOV AX,1000H ...

《汇编语言程序设计》 题目解答
3、计算1090H+1280H的和。4、AX=1090H,BX=90H。5、MOV DX,1 MOV AX,-100H MOV BX,16 IMUL BX (1)执行后,AX=F000H,BX=16,DX=FFFFH (2)若将IMUL改为MUL则执行完后,AX=1600H,BX=16,DX=000BH 6、下面程序段中每条指令执行完后,AX的内容是什么(十六进制)?MOV AX,0;AX=0000...

汇编语言程序设计填空题和问答题部分
1.为零 2.偏移 3.4位 4.group name db(前两个不太确定,你再查一下吧)5.CX 6.CALL RET 7.MACRO ENDM 宏体 8.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,填入括号中。A.使用D的直接寻址 (0A2B1H )B.使用BX的寄存器间接寻址 (1000H...

汇编语言程序设计求助?
他给出的程序,只是个概念性的程序。并非是完整程序,所以,不可进行编译。完整程序如下:程序中,要有 200 个字节数据啊!你自己补齐吧。

汇编语言程序设计题求高手
1.编写一个程序实现:在BUF开始的存储区中存放30个带符号数,试统计其正数、负数和零的个数,并将统计的个数分别放到PLUS、NEGATIVE、ZERO单元中。; 本程序通过编译,运行正确 Code Segment Assume CS:Code,DS:Code BUF db 23,-69,0,35,46,0,57,68,0,79,81,98,-43,251,21,15,-69,0,...

汇编语言程序设计习题解答
1、设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种:解答:根据操作数地址码为6位,则二地址指令中操作码的位数为16 – 6 – 6 = 4。这4位操作码可有24=16种操作。由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下二地址指令最多有16 – P – ...

汇编语言的一些程序设计题,谁能举例解答一下
1、交换可以用堆栈进行,AX。BX相互交换内容 PUSH AX PUSH BX POP AX POP BX 这样AX和BX内容就交换了 2、为了方便你理解,写一些不正确的表达式吧 MOV AX,0 相当于 int a=0;XOR AX,AX XOR这个指令,如果后面两个数相同,则为0,并将0存放到第一个寄存器AX中 SUB AX,AX 相当于 ...

汇编语言程序设计题
汇编语言程序设计题 请各位达人帮忙,题目如下:从键盘上输入2个10位数以内(位数可变)十六进制数,对其求和并显示结果,程序运行时提示输入加数和被加数,求完和显示结果后,显示继续和退出。非常谢谢!... 请各位达人帮忙,题目如下:从键盘上输入2个10位数以内(位数可变)十六进制数,对其求和并显示结果,程序运行时提示输入...

汇编语言程序设计题目,在线等答案!!!急!
DISP FU:LEA DX, MSG2 DISP:MOV AH, 9 ;显示字符串.INT 21H MOV AH, 4CH INT 21H CODE ENDS END START ;--- 其它题目,也回答了不少,可见楼主提问的其它网页。

相似回答