汇编语言。 CMP [CX],BYTE PTR STR+1请问错在哪
错误有:1、cx为计数器,不能作为地址寄存器;2、cmp指令的两个操作数不能都是内存单元,必须有一个是寄存器或立即数
汇编语言程序输出的一直是乱码,求高手找错
XOR CX, CX MOV CL, ACTLEN ;取得输入的字符数.MOV DX, OFFSET CHARS ;输入的字符串起始地址送DX MOV BX, DX ;将字符串首地址送BX ADD BX, CX ;取到字符串尾地址.MOV BYTE PTR [BX], '$' ;在字符串尾插 MOV AH, 09H ;字符串显示功能.INT 21H ...
这个汇编程序有什么问题!求教!
cmp DL, ' 'byte ptr 是用于指定内存操作数类型的,不能用在寄存器上。按你程序的要求,逐字节处理单字节的字符,寄存器应当使用8位的DL,而不能用16位的di 。在上面的mov 指令中,DL是8位寄存器,用它,已经明确了数据类型是8位,因而[bx]自动被确定为字节类型,可以不再用 byte ptr 指定类型。
汇编语言:底下的程序显示 cmp [si],0和test[si]不正确 为什么啊 这...
xor dx,dx mov cx,y lea si,x sub si,1 test1:add si,1 cmp byte ptr [si],0 jz nz add ah,1 jmp ok nz:test byte ptr [si],80h jz z add al,1 jmp ok z:add dl,1 jmp ok ok:dec cx cmp cx,0 jnz test1 mov p_count,al mov z_count,ah mov n_count,dl mov ah...
去掉前导0 汇编问题
说的不是很明白,给你弄个示意的东西吧:假如这个ASCII字串前面有'0':TEMP db '01234','$'用这些指令处理之后 compare001:cmp byte ptr tmp,'0'jnz out001 mov cx,5 ;CX是字符的个数 mov bx,offset TEMP circle001:mov al,[bx+1]mov [bx],al inc bx loop circle001 jmp short compare...
汇编语言,输入一个长度为n的字符串,将大写字母转化为小写
LEA DX, STR MOV AH, 0AH ;输入字符串 INT 21H MOV CL, STR + 1 MOV CH, 0 CMP CX, 0 JNZ CAL JMP EXIT CAL:MOV STR, 13 MOV STR + 1, 10 MOV AL, 'z' + 1 MOV BX, 0 LOP:CMP BYTE PTR STR[BX + 2], 'A'JB NEXT1...
...下面的汇编程序错在哪 响铃程序 输入的数不在1-9之间的就提示错误...
CMP AL,1 ;输入的字符大于或等于1跳转 AA: CMP AL,9 ;输入的字符小于或等于9跳转 上述1,9分别改为31h,39h 觉得你的延时有点过头了,阿门。。。
求大神解答汇编题目,谢谢
题主采纳的答案,是错误的。截图如下:将其改正,如下:仅用 20 几行,即可完成。另外,本题目只是一个小小的作业题,并没有要求写出完整程序。如果出现在考题中,也就是 10 分之内而已。并不需要长篇大论。所以,仅需写出下面几行,即可得满分:题目没有要求显示,所以,显示,是不需要的。这种...
【高分】帮忙用汇编语言做一个程序:学生成绩统计
push cx@@Input: call GetCursor ;取光标位置 mov ah,1 ;从键盘接受一个字符 int 21h cmp al,CR ;若键入的是回车,已经键入的数字不足N位 jz @@ASC_Dec ;转去处理已经键入的数字 cmp al,KBBack jz @@KB_Back ;若是回空键,重新输入 cmp al,'0' jb @@KBBack ;若低于数字'0',重新输入 cmp al...
请教几道汇编语言的题目!先谢!
OFFSET NUM '求NUM偏移即"MOV BX,OFFSET NUM"的指令长度2+1221H NUM DW 12H 'DW 12H 即ADC AL,[BX+SI]不影响结果 MOV CL,BYTE PTR NUM+1'求NUM+1的值,NUM是个地址标量1223H …MOV CH,TYPE NUM '求NUM的长度即2 MOV AX,NUM HLT '暂停,不影响结果 AX=12H,BX=1223H,CX=224H ...