萌新求助汇编语言代码正误
下面是一些汇编代码,要求判断正误,并写出错误原因,我没有正确答案,不知道自己写的对不对,求助大神帮忙看看。1MOV BL,AX
MOV AX,CS
MOV DS,ES
MOV DS,AX
MOV ,AX
MOV ,89H
MOV ,
MOV ES,,CX
IN AX,
IN EAX,3456H
IN AL,25H
IN AX,CX
OUT DX,AX
OUT 23H,AL
OUT 2323H,AX
OUT 23H,BX
ADD ,200
ADD ,
UB AX,BL
LEA AX,134H
PUSH BL
PUSH CS
POP CS
INL
DEL
再三拜谢各位大神,拜托了
泣泪自顶 第一条就不对,类型不匹配,一下写了这么多,用debug试一下就可以咯 这不是一条程序,是一套判断题,一共25道小题,每行一题。请求诸位大神逐条分析,并给出错误原因,拜托了 本帖最后由 丶忘却的年少o 于 2017-9-19 21:46 编辑
MOV BL,AX bl是一个字节,ax是二个字节,大小不匹配呀,塞不进的
MOV AX,CS 这个对的,但是反过来就不对了,cs是系统分配的
MOV DS,ES ds,es都不是通用寄存器,不能直接赋值的,需要ax之类的中介
MOV DS,AX 这个对的
MOV ,AX 如果是外部编译不行,必须用通用寄存器代表地址
MOV ,89H 同理
MOV , 同理
MOV ES,,CX 同理,并且es:[]才对
下面的不清楚。上面这几个应该是那样的判定 MOV BL,AX ;错误,字型不匹配,AX点16位,AL为8位的
MOV AX,CS ;正确,都是16位的
MOV DS,ES ;错误, DS,ES不能直接赋值
MOV DS,AX ;正确
MOV ,AX ;错误,是8位的内存地址范围是0~255,100H为256了,mov ,ax就可以
MOV ,89H ;错误,同上
MOV , ;错误,同上
MOV ES,,CX;错误,同上
IN AX, ;错误
IN EAX,3456H ;错误
IN AL,25H ;正确
IN AX,CX ;正确
OUT DX,AX ;正确
OUT 23H,AL ;错误
OUT 2323H,AX ;错误
OUT 23H,BX ;错误
ADD ,200 ;错误,300H超过内存地址范围,且200不能直接赋值
ADD ,;错误, 同上
UB AX,BL ;这个就不知道了
LEA AX,134H ;错误
PUSH BL ; 错误,push应该为16位的寄存器,BL为低8位的BX寄存器
PUSH CS ;正确
POP CS ;正确
INL ;错误
DEL ;错误 weizhongyang 发表于 2017-9-20 10:27
MOV BL,AX ;错误,字型不匹配,AX点16位,AL为8位的
MOV AX,CS ;正确,都是16位 ...
多谢多谢,真心感谢!! 羽流云 发表于 2017-9-20 15:27
多谢多谢,真心感谢!!
不谢不谢,真的不谢!{:5_108:}
页:
[1]